gpt4 book ai didi

python - 无法使用Python的PyCDC.DrawText()绘制Unicode字符

转载 作者:行者123 更新时间:2023-11-30 23:50:16 25 4
gpt4 key购买 nike

我正在尝试使用 PyCDC.DrawText() 绘制 Unicode 字符,但它似乎绘制了两个 ASCII 字符。例如,当尝试绘制“Я”(\u042F) 时,我得到:http://i.stack.imgur.com/hh9RJ.png

我的字符串被定义为 Unicode 字符串:

text = u'Я'

文件开头为:

# -*- coding:utf-8 -*-

我还尝试打印字符串(到控制台),结果很好,所以问题可能出在 DrawText() 的实现中。

谢谢!

最佳答案

要在 Windows 上输出 Unicode 文本,您需要将其编码为 UTF-16 并调用 DrawText() 的宽字符版本。或TextOut() Win32 函数。如果您不熟悉,Windows API 本身就是 UTF-16,并且具有并行 8 位 ANSI 版本以提供旧支持。

我对您正在使用的 Win32 包装器一无所知,但怀疑 PyCDC.DrawText() 正在调用正在执行这项工作的这些 Win32 函数之一的 ANSI 版本。您的解决方案可能涉及找到调用 DrawTextW()TextOutW() 的方法。您可以使用 ctypes 来完成此操作,并且这些函数肯定也可以通过 PyWin32 来使用。

但是,我可能会选择更高级别的东西,例如 PyQt。

关于python - 无法使用Python的PyCDC.DrawText()绘制Unicode字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7220935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com