我正在尝试制作一个将日本片假名转换为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'而不是シ,它应该能够处理它,对吧?
raw_input以字节编码的形式返回输入的字符串,该形式因使用的终端而异.首先使用以下方法尝试将输入显式解码为Unicode:
import sys
x = raw_input('Enter katakana: ').decode(sys.stdin.encoding)
Run Code Online (Sandbox Code Playgroud)
您得到的错误来自于尝试x通过默认ascii编解码器将字节编码转换为Unicode .
| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |