尝试删除Python 2.7中的Unicode特殊字符时出错:预期字符串或其他字符缓冲对象



我尝试删除python 2.7中的unicode特殊字符,但我有错误

newr = r.translate({ord(c(:" for""""}(typeError:预期a 字符串或其他字符缓冲对象

在这里我的代码:

# -*- coding: utf-8 -*-
r= "“សួស្តី” – “អ្នក” – “Ok”"
newr = r.translate ({ord(c): "" for c in "“”"})
print (newr)

我要删除此。

"

ps:这是Khmer Unicode

在Python 2.7中,Str类型是字节字符串,没有Unicode字符的概念。只是某些字节序列可能是UTF-8编码的Unicode字符。如果要处理Unicode字符,则必须将字节字符串解码为使用ur = r.decode('utf-8')的Unicode。

此外,当在字节字符串和Unicode One上调用时,translate方法具有不同的语法。您的代码使用Unicode语法,但应用于字节字符串,因此是错误的。

想要的是:

# -*- coding: utf-8 -*-
r= "“សួស្តី” – “អ្នក” – “Ok”"
newr = r.decode('utf-8').translate ({ord(c): None for c in u"“”"})
print (newr)      # or print(newr.encode('utf-8'))

尝试

r = "“សួស្តី” – “អ្នក” – “Ok”"
newr = r.replace("“","").replace("”","")
print (newr)

r = "“សួស្តី” – “អ្នក” – “Ok”"
newr = ''.join(x for x in r if x != '”' and x != '“')
print (newr)

编辑:您已经编辑了您的问题,因此我的答案可能不再有效,但是它似乎对我有用

相关内容

最新更新