我正在尝试用下面的代码将unicode字符替换为ascii字符。同样的代码在windows机器上运行,但在unix机器上运行时,我遇到错误:
"TypeError: expected a character buffer object"
#!/usr/bin/python2
# coding=utf-8
import sys
s = open(sys.argv[1], "r")
table = {
0xe4: u'a',
ord(u'ö'): u'o',
ord(u'ü'): u'u',
ord(u'é'): u'e',
ord(u'ß'): u'b',
}
for i in s:
print ("Translated Content in file:",str(i).translate(table));
s.close()
输入文件(utf8.txt
)传递给包含以下内容的脚本
sömé täßt
sömé täßt
sömé täßt
预期结果是:
Translated Content in file: some tabt
Translated Content in file: some tabt
Translated Content in file: some tabt
在Unix机器上的实际结果:
Traceback (most recent call last):
File "unicode.py", line 17, in <module>
print ("Translated Content in file:",str(i).translate(table));
TypeError: expected a character buffer object
需要关于这个问题的建议。你知道吗
我明白了,问题是您需要将处理划分为字符,而现在您直接应用于字符串。你能看看这个代码吗:
您可以跳过使用
translate
,而是直接访问表(作为字典):相关问题 更多 >
编程相关推荐