-3

在 C 中,我可以做到这一点:printf("%c%c",-108,109);. 但是如何在 Python 中做到这一点?

args[2]='Test%c%cFile'% (-108,-109)
OverflowError: unsigned byte integer is less than minimum
4

2 回答 2

1

从评论中,您似乎想将一些非 ASCII 字符放入字符串中。在 Python 中不需要涉及负整数的技巧,它具有非常好的 Unicode 字符串,可以保存您梦寐以求的任何字符。使用代码表(如这个\uxxxx)查找字符的代码点,然后使用语法将它们插入到字符串中。

编辑:您似乎很喜欢U+9493 CJK UNIFIED IDEOGRAPH-9493,可以使用将其插入字符串

str = u"\u9493"

(感谢@KeithThompson!)

于 2013-07-29T03:05:33.957 回答
0

真正的答案是您一直在依赖 C 代码中的非标准行为(其中一位语言律师可以介入并告诉您它是否真的未定义)。

您需要研究如何在 python 中正确支持非 ASCII、多字节字符集,而不仅仅是尝试复制不正确的 C 代码。

有很多资源可以帮助您正确使用应用程序的“i18n”。

于 2013-07-29T02:58:17.030 回答