Python无法识别unicode

时间:2012-11-25 23:12:21

标签: python unicode

我正在尝试制作一个将日本片假名转换为romaji(“シ”到“shi”)的脚本。这是我正在尝试的:

x = u''
x = raw_input('Enter katakana: ')
x = x.replace(u'\u30B7', u'shi')
  

输入片假名:シ
      UnicodeDecodeError:'ascii'编解码器无法解码位置0的字节0xe3:序数不在范围内(128)

只要我的脚本中的unicode写成u'\ u30B7'而不是シ,它应该能够处理它,对吗?

1 个答案:

答案 0 :(得分:8)

raw_input以字节编码形式返回输入的字符串,该形式因使用的终端而异。尝试使用以下命令将输入​​显式解码为Unicode:

import sys
x = raw_input('Enter katakana: ').decode(sys.stdin.encoding)

你得到的错误来自于尝试通过默认的x编解码器将字节编码的ascii天真地转换为Unicode。