Вот вопрос новичка по Unicode.Я использую Embarcadero C ++ Builder 2009, где они предположительно изменили строки по умолчанию для использования Unicode.
- Я печатаю различные символы в моем редакторе исходного кода, которые не являются частью стандартного "7-битного"ASCII ".
- Моя программа использует строковый тип C ++ Builder для извлечения пользовательского ввода.
- Я также добавляю ввод вручную, устанавливая значение в wchar_t.
Казалось бы, существуют конфликты в интерпретации символов.Иногда я получаю символ, например, с кодом 0x00C7 ('Ç'), но иногда тот же символ кодируется как 0xFFC7, например, в редакторе исходного кода.Насколько я понимаю, первый - это правильный Unicode, а второй - «что-то другое».Кто-нибудь может это подтвердить?
Интересно, откуда взялась эта «что-то еще» кодировка и как от нее избавиться?
РЕДАКТИРОВАТЬ: Дальнейшее исследование: кажется, что единственное место, где появляется кодировка 0xFF **, это когда я делаю что-то вроде этого:
string str = ...;
wchar_t wch = (wchar_t)str[i];
Тот же результат, независимо от того, является ли он std ::строка или строка VCL.wchar_t
не то же самое, что Unicode?