我正在尝试使用Python将u'\u30c9\u30e9\u30b4\u30f3'转换为日语字符。
以下是我的示例代码:
s = u'\u30c9\u30e9\u30b4\u30f3'.encode('utf-8')
print str(s)
我遇到了这个错误
UnicodeEncodeError: 'ascii'编解码器无法对第0-3个位置的字符进行编码:该值不在128的范围内。
我正在尝试使用Python将u'\u30c9\u30e9\u30b4\u30f3'转换为日语字符。
以下是我的示例代码:
s = u'\u30c9\u30e9\u30b4\u30f3'.encode('utf-8')
print str(s)
我遇到了这个错误
UnicodeEncodeError: 'ascii'编解码器无法对第0-3个位置的字符进行编码:该值不在128的范围内。
>>> s = u'\u30c9\u30e9\u30b4\u30f3'
>>> print s
ドラゴン
在Linux上,这需要您的终端正确配置为(通常)UTF-8。
在Windows上,您需要一个支持UTF-8的IDE,但如果使用Windows控制台,则会出现UnicodeEncodeError
,除非使用支持日语的本地化版本的Windows,或者更改系统区域设置为日语。另一个解决方法是使用win-unicode-console和安装日语控制台字体。
我上面的示例使用了随pywin32模块一起提供的PythonWin IDE,并且在附带标准Python安装的Python IDLE IDE中也可以使用。
我在Windows 10上的REPL中使用日语字符时遇到了UnicodeEncodeError
错误。
我按照Mark Tolonen的建议,前往
更改系统区域设置
在区域设置中。有一个选项说
测试版:使用 Unicode UTF-8 支持全球语言。
我勾选了这个选项,并保持当前系统区域设置为英语(即不变)。
重新启动后,REPL开始正确地打印日语字符。
您获得的是以字节为单位的 s。要获取日语字符,请使用 print(s.decode('utf-8'))
。