我正在尝试使用python将u'\u30c9\u30e9\u30b4\u30f3'转换成日语字符。
这是我的示例代码
s = u'\u30c9\u30e9\u30b4\u30f3'.encode('utf-8')
print str(s)我得到了错误UnicodeEncodeError:'ascii‘编解码器不能编码0-3位置的字符:序数不在范围内(128个)
发布于 2017-11-15 08:12:11
这将取决于您的操作系统和配置,但通常您只需打印Unicode字符串。如果操作系统、默认终端编码和字体支持日语,则只需:
>>> s = u'\u30c9\u30e9\u30b4\u30f3'
>>> print s
ドラゴン在Linux上,这要求您的终端被正确地配置为(通常) UTF-8。
在Windows上,您需要一个支持UTF-8的IDE,但是如果使用Windows,您将得到一个UnicodeEncodeError,除非使用支持日语的本地化版本的更改系统区域设置,或者使用日语的更改系统区域设置。另一个解决办法是使用win-unicode-控制台并安装日文控制台字体。
上面的示例使用了PythonWin模块附带的Python,并在标准pywin32安装附带的PythonWin中工作。
发布于 2018-10-02 21:32:58
在Windows 10上,我在REPL中有一个用于日语字符的UnicodeEncodeError。
我听从了马克·托洛宁的建议
变更系统现场
在区域设置中。有一种选择说
测试版:使用Unicode UTF-8进行世界范围的语言支持。
我选中了这个选项,并将当前的系统区域设置保持为英语(即不变)。
重新启动后,REPL开始正确打印日文字符。
发布于 2017-11-15 07:27:23
S以字节为单位。要获得日文字符,请使用print(s.decode('utf-8'))。
https://stackoverflow.com/questions/47300495
复制相似问题