我读日语,想尝试处理一些日文文本.我尝试使用Python 3:
for i in range(1,65535):
print(chr(i), end='')
Run Code Online (Sandbox Code Playgroud)
然后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>
Run Code Online (Sandbox Code Playgroud)
我的理解是chr函数继续将Unicode数字转换为相应的日语字符.如果是这样,为什么不输出日文字符?为什么它会在罗马字符列表的末尾崩溃?
如果我错误地认为Unicode集是为了迎合非西方语言而设计的,那么请纠正我.
编辑:
我尝试了John Machin在IDLE中提出的3行,输出工作正常!
在此之前,我一直在使用程序员的记事本,工具设置为捕获python.exe编译器的输出.也许这就是错误发生的原因.
但是,对于大多数其他事情,输出被正确捕获; 那么为什么它在这个过程中特别失败?即为什么代码在IDLE Python Shell中工作,而不是通过Programmer的Notepad输出捕获?无论接口如何,输出都不应该相同吗?
如果你说你读日语,你必须知道日语是用四种不同类型的字符书写的:(1)汉字(汉字)(2)片假名(3)平假名(4)罗马字("罗马字母").有成千上万的汉字,其中只有几千个是常用的.
你的代码,如果它按照你想象的那样工作,不仅会打印出"罗马"字符,还会打印希腊语,阿拉伯语,希伯来语,西里尔语(俄语等),亚美尼亚语,六种左右不同但相关在印度使用的字符集,很多我遗漏的,大约11千个韩文音节(用韩语)和一堆乱码代码点未使用,(取决于你运行它的shell)可能当它达到0xD800(第一个代理人)时崩溃了.
一点点野心会给你平假名,片假名和一些"CJK统一表意文字".以下示例在IDLE中运行.
>>> for i in range(0x3040, 0x30a0): print(chr(i), end='')
????????????????????????????????????????????????????????????????????????????????????????????????
>>> for i in range(0x30a0, 0x3100): print(chr(i), end='')
????????????????????????????????????????????????????????????????????????????????????????????????
>>> for i in range(0x4e00, 0x4f00): print(chr(i), end='')
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
更新您遇到问题的原因是您使用的shell/IDE仅提供Windows GUI沼泽标准标准输出,默认编码(在您的树林中)是cp1252(记得在您的cp1252中提到追溯?)这对你的罗马字人来说是足够的,但不是很多.随处可用 - 无需下载替代方案:(1)IDLE(2)以UTF-8编码的文件,并在记事本中读取.我相信其他人可以推荐其他IDE.
| 归档时间: |
|
| 查看次数: |
10641 次 |
| 最近记录: |