python - 如何将 Unicode 字符串转换为 TCHAR 系统?

标签 python python-3.x winapi unicode wchar

我有一个 python (3.6) 代码,应该将 Unicode 字符串传递到虚幻引擎项目。虚幻引擎以 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 - 如何将 Unicode 字符串转换为 TCHAR 系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52948522/

相关文章:

c++ - 使用 MSVC2010 在动态 QT 中使用 RegOpenKey 和 RegEnumKey

python - cv2.imread : checking if image is being read

python - 数据帧上的averageifs异常出现问题

python - 如何在完美中为 control_flow 分配名称?

c++ - 在没有 MFC 的 win32 中保存/打开通用对话框

php - 是发送错误还是接收错误?未发送完整消息或消息未正确解码

php - 开始用于网络的 python

python - Django 模型中的类属性继承

python - Python 的 SignalR 替代方案

python - 从python中的.txt文件中读取特殊字符