Как в поток вывести BOM EF BB BF?

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

Romeo писал(а):Господи, да привыкни уже, что путаешь и фантазируешь ты.
Это как я к этому привыкну, если у меня вообще нет фантазии? В отличие от тебя:
Romeo писал(а):Нет. Говорю же, wstring - это просто широкая строка без всякой кодировки.
в комповой памяти строка прямо глифами, причём, не бинарными, а краской. Класс! А ничего, что на такое фантазии не хватит даже у Донцовой с Давинчи в придачу?
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Это как я к этому привыкну, если у меня вообще нет фантазии? В отличие от тебя:
Без фантазии жить скучно, так что сочувствую тебе. Но в программировании нужно не отсебятину придумывать, а документацию читать.
в комповой памяти строка прямо глифами, причём, не бинарными, а краской. Класс! А ничего, что на такое фантазии не хватит даже у Донцовой с Давинчи в придачу?
Это ли отсутствие фантазии? Ты же сам себе противоречишь, трололо :) Да ещё и Донцову читаешь. Фу.

Так, а теперь по делу. В соседней теме ты уже признал, что wstring содержит некодированные данные и вызвал WinAPI функция для перекодировки. К чему дальше упираться, я не понимаю?

P.S. Все дальшейшие попытки троллинга буду карать горчичником. Ты чисто по-человечески должен испытывать благодарность человеку, который тебе помогает. Это свинство вместо благодарности троллить. Хочешь поупражняться в этом занятии, сходи на какой-нибудь сайт, где школьники сидят. Здесь же люди общаются серьёзно.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

Romeo писал(а):Это ли отсутствие фантазии? Ты же сам себе противоречишь, трололо Да ещё и Донцову читаешь. Фу.
Ну ка где я сказал, что у тебя нет фантазии?
Romeo писал(а):Так, а теперь по делу. В соседней теме ты уже признал, что wstring содержит некодированные данные и вызвал WinAPI функция для перекодировки.
Перекодировка возможна только из некоторого предшествующего кода, в отличии от кодирования вообще. И если он не совпадает конкретно с UTF-8, которая есть версия уникода, это ещё ничего не значит. Анси-строки широкими не бывают.
Romeo писал(а):Здесь же люди общаются серьёзно.
Мне и надо серьёзно.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Хорошо, серьёзно, так серьёзно.

Cкажи тогда о чём ты сейчас споришь? Ты не знал, что std::wstring содержит просто широкую строку, а не готовый кодированный UTF - я тебе об этом сказал. Более того, ты в соседней теме уже пошёл дальше, вызывав API для кодирования. Сказал бы спасибо и закрыл бы на этом обсуждение. Ты же пытаешь выжать никому не нужный спор из используемой приставки. Да какая разница, какая приставка была использована, ведь всем и так ясно о чём идёт речь.

А вот это я вообще не понял к чему:
Анси-строки широкими не бывают.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

Это ты не знал, что ни одна функция не занимается первичным кодированием. И функцию я вызвал для перекодировки конкретно в UTF-8 из другого кода. Уникод вообще - это что? UTF-8? UTF-16 старший в старшем? UTF-16 старший в младшем? UTF-32 старший в старшем? UTF-32 старший в младшем? UTF-48 старший в старшем? UTF-48 старший в младшем? UTF-64 старший в старшем? UTF-64 старший в младшем? Что это вообще за кодировка? На самом деле это всё перечисленное, отличительный признак - кодирование каждый раз и символа, и кодовой плоскости в одном коде, а не так, что русский и вязь на одних и тех же кодах и где то в файле согласно его формату указывается, а иногда и вообще подразумевается, а указывается только пользователем, либо в реестре, какому именно языку соответствуют эти коды. Так вот, широкая строка предназначена для поддержки именно таких кодировок и если даже там внутри нечто 9-е, а не одна из стнадартных равномерных разновиднойстей уникода, эти частности не отменяют того факта, что одно в другое можно привести, не беспокоясь о не хватке кодов.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Всё, я устал. Можешь продолжать перечислять, что я ещё не знаю, но без меня. С тобой спорить - только нервы тратить.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Аватара пользователя
Сионист
Сообщения: 1211
Зарегистрирован: 31 мар 2014, 06:18

В Windows API, тип wchar_t именуется как WCHAR и имеет фиксированный размер 16 бит, что не позволяет кодировать весь набор символов Unicode (больше 1 миллиона). Поэтому нарушается стандарт ANSI/ISO C, который требует, чтобы символьный тип wchar_t поддерживал все представимые в системе символы в одном объекте wchar_t. По сути в WinAPI под WCHAR подразумевается 2-байтное слово из кодировки UTF-16LE (как тип WORD). Поэтому символы с кодами выше FFFF16 кодируются парой WCHAR (так называемые «суррогаты»). И всем API-функциям передаётся не количество символов, а размер символьного массива в машинных словах.

В GNU/Linux тип wchar_t имеет размер 32 бита.
Ну очень не уникод.
Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на c.
Ответить