我正在尝试使用python将 u' \ u30c9 \ u30e9 \ u30b4 \ u30f3' 转换为日语字符
这是我的示例代码
s = u'\u30c9\u30e9\u30b4\u30f3'.encode('utf-8')
print str(s)
我收到了这个错误 UnicodeEncodeError:' ascii'编解码器不能对位置0-3中的字符进行编码:序数不在范围(128)
中答案 0 :(得分:2)
这取决于您的操作系统和配置,但通常只打印Unicode字符串。如果您的操作系统,默认终端编码和字体支持日语,您只需要:
>>> s = u'\u30c9\u30e9\u30b4\u30f3'
>>> print s
ドラゴン
在Linux上,这需要将您的终端正确配置为(通常)UTF-8。
在Windows上,您需要一个支持UTF-8的IDE,但是如果使用Windows控制台,除非使用支持日语的本地化版本的Windows或changing the system locale,否则您将获得UnicodeEncodeError
日本。另一种解决方法是使用win-unicode-console并安装日语控制台字体。
上面的示例使用了pywin32模块附带的PythonWin IDE,也适用于标准Python安装附带的Python IDLE IDE。
答案 1 :(得分:1)
我在Windows 10的REPL中有一个UnicodeEncodeError
的日语字符。
我听了Mark Tolonen的建议,去了
更改系统区域设置
在“区域”设置中。有一个选项说
测试版:将Unicode UTF-8用于全球语言支持。
我选中了此选项,将当前系统区域设置保留为英语(即不变)。
重新启动后,REPL开始正确打印日语字符。
答案 2 :(得分:0)
你得到的是字节数。要获取日文字符,请使用print(s.decode('utf-8'))
。