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