Как преобразовать строку Unicode в систему TCHAR? - PullRequest
0 голосов
/ 23 октября 2018

У меня есть код Python (3.6), который должен передавать строку Unicode в проект Unreal Engine.Unreal Engine отображает текст в формате TEXT, и я не ошибаюсь, это массив TCHAR Win-Api.Я видел, что на моей платформе TCHAR составляет 2 байта.

Вот как я кодирую строку на стороне Python:

by = bytes(st, 'utf-8')

Я пытался кодировать и передавать строку "Hello ".Нереальные получили данные ['H', 'e', ​​'l', 'l', 'o'] (каждый символ 1 байт) и напечатали "效 汬 o" (это относится к«Он» и «ll» как один символ Unicode).

Как я могу это исправить?

  • Должен ли я изменить кодировку на стороне Python, чтобы всегда генерировать 2 байта на символ?
  • Должен ли я каким-то образом декодировать массив байтов результата на нереальном в TCHAR Unicode?

1 Ответ

0 голосов
/ 23 октября 2018

Учитывая вашу конфигурацию, TCHAR отображается на wchar_t, тип символа, который в одностороннем порядке закодирован с использованием UTF-16LE в Windows.

Вы можете закодировать строку, используя:

by = bytes(st, 'utf-16')
...