Python无法识别unicod

2024-06-01 05:18:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试制作一个脚本,将日文片假名转换为罗马字(“シ”改为“石”)。我正在尝试的是:

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

Enter Katakana: シ
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)

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


Tags: in脚本inputrawasciicanreplacecodec
1条回答
网友
1楼 · 发布于 2024-06-01 05:18:26

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

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

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

相关问题 更多 >