Страница 1 из 2
Как в поток вывести BOM EF BB BF?
Добавлено: 08 апр 2014, 15:20
Сионист
Как в поток вывести BOM EF BB BF для UTF-8?
Re: Как в поток вывести BOM EF BB BF?
Добавлено: 08 апр 2014, 16:35
Romeo
А поток какой? Как объявлен?
Re: Как в поток вывести BOM EF BB BF?
Добавлено: 08 апр 2014, 17:26
Сионист
Re: Как в поток вывести BOM EF BB BF?
Добавлено: 08 апр 2014, 19:01
Romeo
В STL нет готовой поддержки уникода. Предлагаю ручной вариант открытия файла в бинарном режиме и записи в его начало EF BB BF, как трёх двубайтных чисел и затем ручной записи данных. Альтернатива - использование стронних библиотек.
Re: Как в поток вывести BOM EF BB BF?
Добавлено: 08 апр 2014, 19:40
Сионист
И потом всё писать в бинарном режиме? И что значит "нет поддержки"? А как же std::wstring? То, что при записи в UTF-8 надо приводить внутренне представление к UTF-8 и отправлять уже std::string, факта не отменяет.
Re: Как в поток вывести BOM EF BB BF?
Добавлено: 08 апр 2014, 19:41
Сионист
Romeo писал(а):EF BB BF, как трёх двубайтных чисел
не 00EF 00BB 00BF, а EF BB BF.
Re: Как в поток вывести BOM EF BB BF?
Добавлено: 08 апр 2014, 20:19
Romeo
Ну путай std::wstring, который просто содержит широкую строку и стандарт кодирования текстовых файлов UTF. UTF, это больше, чем просто широкая строка хотя бы из-за BOM, а так же ещё из-за хитрого кодирования не латинских символов. И если уж решил всё-таки путать, то путай std::wstring с UTF-16 (так как он двухбайтный для латиницы), а не с UTF-8. В общем, советую почитать про уникод немного: поисковик и викидедия в помощь.
Re: Как в поток вывести BOM EF BB BF?
Добавлено: 09 апр 2014, 06:41
Сионист
Есть и UTF-8 без BOM. Кроме того, а с какой это стати внутреннее преставление должно быть с BOM? И разве в wstring кириллица представлена не также?
Re: Как в поток вывести BOM EF BB BF?
Добавлено: 09 апр 2014, 06:43
Сионист
Romeo писал(а):И если уж решил всё-таки путать, то путай std::wstring с UTF-16 (так как он двухбайтный для латиницы), а не с UTF-8.
Это ты путаешь необходимость приведения с отсутствием мистической поддержки.
Re: Как в поток вывести BOM EF BB BF?
Добавлено: 09 апр 2014, 10:05
Romeo
И разве в wstring кириллица представлена не также?
Нет. Говорю же, wstring - это просто широкая строка без всякой кодировки.
Это ты путаешь необходимость приведения с отсутствием мистической поддержки.
Господи, да привыкни уже, что путаешь и фантазируешь ты. А я, если не уверен, то не говорю.
Ещё раз тебе советую почитать про UTF, если решил его кодировать. Иначе у тебя ничего не получится. Очень сложно писать код к чему-то, чего не понимаешь.