我读日语,想尝试处理一些日语文本。我使用 Python 3 尝试过:
for i in range(1,65535):
print(chr(i), end='')
然后Python给了我很多错误。什么地方出了错?
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Traceback (most recent call last):
File "C:\test\char.py", line 11, in <module>
print(chr(i), end='')
File "C:\Python31\lib\encodings\cp1252.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\x80' in position 0: character maps to <undefined>
我的理解是chr函数继续将 Unicode 数字转换为相应的日语字符。如果是的话,为什么不输出日文字符?为什么它在罗马字符列表的末尾崩溃?
如果我的理解有误,请纠正我,即 Unicode 集只是为了迎合非西方语言而设计的。
EDIT:
我在 IDLE 中尝试了 John Machin 建议的 3 行,输出有效!
在此之前,我一直使用程序员记事本,并设置工具来捕获 python.exe 编译器的输出。也许这就是错误发生的原因。
然而,对于大多数其他事情,输出都可以正确捕获;那么为什么在这个过程中特别失败呢?即为什么代码可以在 IDLE Python Shell 中工作,但不能通过程序员的记事本输出捕获来工作?无论接口如何,输出不应该是相同的吗?