我是 Python 初学者,遇到了 utf-8 问题。
我有一个 utf-8 字符串,我想用 ASCII 替换替换所有德语变音符号(在德语中,u-umlaut 'ü' 可以重写为 'ue')。
u-umlaut 的 unicode 代码点为 252,所以我尝试了这个:
>>> str = unichr(252) + 'ber'
>>> print repr(str)
u'\xfcber'
>>> print repr(str).replace(unichr(252), 'ue')
u'\xfcber'
我希望最后一个字符串是 u'ueber'
。
我最终想做的是用“ue”替换文件中的所有 u-umlauts:
import sys
import codecs
f = codecs.open(sys.argv[1],encoding='utf-8')
for line in f:
print repr(line).replace(unichr(252), 'ue')
感谢您的帮助! (我使用的是 Python 2.3。)
最佳答案
我会定义一个特殊字符的字典(我想映射)然后我使用 translate
方法。
line = 'Ich möchte die Qualität des Produkts überprüfen, bevor ich es kaufe.'
spcial_char_map = {ord('ä'):'ae', ord('ü'):'ue', ord('ö'):'oe', ord('ß'):'ss'}
print(line.translate(spcial_char_map))
你会得到如下结果:
Ich moechte die Qualitaet des Produkts ueberpruefen, bevor ich es kaufe.
关于python - 如何在 Python 中搜索和替换 utf-8 特殊字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2054746/