python unicode转换为日文字符

时间:2017-11-15 06:09:24

标签: python unicode python-2.x cjk

我正在尝试使用python将 u' \ u30c9 \ u30e9 \ u30b4 \ u30f3' 转换为日语字符

这是我的示例代码

s = u'\u30c9\u30e9\u30b4\u30f3'.encode('utf-8')
print str(s)

我收到了这个错误 UnicodeEncodeError:' ascii'编解码器不能对位置0-3中的字符进行编码:序数不在范围(128)

3 个答案:

答案 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'))