在 C 中,我可以做到这一点:printf("%c%c",-108,109);
. 但是如何在 Python 中做到这一点?
args[2]='Test%c%cFile'% (-108,-109)
OverflowError: unsigned byte integer is less than minimum
从评论中,您似乎想将一些非 ASCII 字符放入字符串中。在 Python 中不需要涉及负整数的技巧,它具有非常好的 Unicode 字符串,可以保存您梦寐以求的任何字符。使用代码表(如这个\uxxxx
)查找字符的代码点,然后使用语法将它们插入到字符串中。
编辑:您似乎很喜欢U+9493
CJK UNIFIED IDEOGRAPH-9493
,可以使用将其插入字符串
str = u"\u9493"
(感谢@KeithThompson!)
真正的答案是您一直在依赖 C 代码中的非标准行为(其中一位语言律师可以介入并告诉您它是否真的未定义)。
您需要研究如何在 python 中正确支持非 ASCII、多字节字符集,而不仅仅是尝试复制不正确的 C 代码。
有很多资源可以帮助您正确使用应用程序的“i18n”。