приложение, которое я разрабатываю с помощью EVC++ 4, работает в Windows CE 5 и должно поддерживать unicode (AFAIK wchar_t использует UTF-16 для окон, поэтому я использую это), поэтому я хотят быть в состоянии проверить его с «более экзотическими» персонажами. Особенно с символами, использующими 4 байта в UTF-16, а не только 2. Поэтому я пытаюсь отобразить такие символы в текстовом редакторе (atm на моем настольном ПК с Windows XP, а не на встроенном устройстве).Отображение символов Юникода выше U + FFFF в Windows
Но я еще не успел это сделать. В качестве примера я выбрал this character. Как упоминалось here «MPH 2B Damase» должен поддерживать этот символ. Поэтому я загрузил шрифт и поместил его в Windows \ Fonts. Я создал текстовый файл, используя двоичный редактор (просто чтобы быть уверенным) с следующим содержанием:
FFFE D802 DC00
Когда я открываю его с помощью блокнота (?, Который должен быть юникод-способным, справа) и использовать загруженный шрифт он не делает дисплей 1 символ, как и предполагалось, но это 2:
˘Ü
Что я делаю неправильно? :)
Спасибо!
hrniels
Edit: Подавать BOM, как это было предложено, не работает. Блокнот (и все остальные редакторы, которые я пробовал, тоже) отображает два квадрата в этом случае. Интересно, что если я копирую два квадрата здесь (с firefox), я вижу правильный символ:
Я также пробовал его с Комодо Править с тем же результатом.Использование UTF-8 также не помогает в блокноте.
0xFFFE - это знак байтового порядка, который указывает на использование UTF-16 (малое значение). Блокнот должен уметь это обнаружить. –
Мне это хорошо известно. Но он не говорит, использует ли он Блокнот или нет. Существует много текстовых редакторов, которые не обрабатывают UTF-16. – Skurmedel
Кроме того, все редакторы не могут обрабатывать спецификации. – Skurmedel