如何将 Unicode 字符串转换为 TCHAR 系统?
How to convert Unicode string to a TCHAR system?
我有一个 python (3.6) 代码应该将 Unicode 字符串传递给 Unreal Engine 项目。 Unreal Engine 以 TEXT 格式显示文本,我没看错是 Win-Api 的 TCHAR 数组。我看到在我的平台上 TCHAR 是 2 个字节。
下面是我在 python 端对字符串进行编码的方式:
by = bytes(st, 'utf-8')
我尝试编码并传递字符串 "Hello"。 unreal得到数据['H'、'e'、'l'、'l'、'o'](每个char 1字节),并打印 "效汬o"(它将"He"和"ll"视为单个Unicode字符)。
我该如何解决这个问题?
- 我是否应该更改 python 端的编码以始终为每个字符生成 2 个字节?
- 我是否应该以某种方式将 unreal 上的结果字节数组解码为 TCHAR Unicode?
根据您的配置,TCHAR
映射到 wchar_t
,一种在 Windows 上使用 UTF-16LE 单方面编码的字符类型。
您可以使用以下方式对字符串进行编码:
by = bytes(st, 'utf-16')
我有一个 python (3.6) 代码应该将 Unicode 字符串传递给 Unreal Engine 项目。 Unreal Engine 以 TEXT 格式显示文本,我没看错是 Win-Api 的 TCHAR 数组。我看到在我的平台上 TCHAR 是 2 个字节。
下面是我在 python 端对字符串进行编码的方式:
by = bytes(st, 'utf-8')
我尝试编码并传递字符串 "Hello"。 unreal得到数据['H'、'e'、'l'、'l'、'o'](每个char 1字节),并打印 "效汬o"(它将"He"和"ll"视为单个Unicode字符)。
我该如何解决这个问题?
- 我是否应该更改 python 端的编码以始终为每个字符生成 2 个字节?
- 我是否应该以某种方式将 unreal 上的结果字节数组解码为 TCHAR Unicode?
根据您的配置,TCHAR
映射到 wchar_t
,一种在 Windows 上使用 UTF-16LE 单方面编码的字符类型。
您可以使用以下方式对字符串进行编码:
by = bytes(st, 'utf-16')