Отображение китайских символов на форме из файла INI
Мой плагин читает текст заголовка элемента управления из файла INI (ANSI в кодировке UTF-8) для отображения нескольких языков. Ключевым моментом является то, что это плагин, у меня нет контроля и возможности изменить этот формат файла INI или тип файла.
Они в настоящее время читаются в моем плагине с TINIFile.ReadString
и хранится как string
, Я могу изменить это (тип данных, метод чтения и т. Д.) По мере необходимости.
Основное приложение читает из своих собственных файлов языка приложений, которые являются UCS-2 Little Endian, закодированными как файл TXT. Они хорошо отображаются при смене языка, даже если ОС Windows поддерживается на английском языке (другими словами, не требуется вносить изменения в локаль ОС для того, чтобы приложение переключало языки отображения).
Форма моего плагина не может отображать азиатские символы (китайский, японский, корейский и т. Д.). Английский язык в порядке.
Я пробовал различные шрифты, используя различные комбинации AnsiString
, String
и т. д. Что мне не хватает, чтобы иметь возможность отображать азиатские символы в форме? Я не нашел аналогичного вопроса с тем, что я пытаюсь сделать, конкретно с тем, как мой языковой текст читается в плагине.
1 ответ
Если программа чтения файлов.INI не интерпретирует содержимое значений и пропускает все значения прозрачным образом, необходимо сопоставить строки в одну с правильным языком.
На Delphi 2010 есть похожий вопрос : как преобразовать PAnsiChar в кодировке UTF8 в UnicodeString? это объясняет, как сделать преобразование. Возможно, вам придется извлечь содержимое в RawByteString, чтобы избежать неявных преобразований.