Python无法识别unicode

tkb*_*kbx 3 python unicode

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

x = u''
x = raw_input('Enter katakana: ')
x = x.replace(u'\u30B7', u'shi')
Run Code Online (Sandbox Code Playgroud)

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

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

Mar*_*nen 8

raw_input以字节编码的形式返回输入的字符串,该形式因使用的终端而异.首先使用以下方法尝试将输入显式解码为Unicode:

import sys
x = raw_input('Enter katakana: ').decode(sys.stdin.encoding)
Run Code Online (Sandbox Code Playgroud)

您得到的错误来自于尝试x通过默认ascii编解码器将字节编码转换为Unicode .