【发布时间】:2015-11-14 09:43:13
【问题描述】:
我需要我的代码来识别单词末尾的特定希伯来语字母,然后用它们的形式替换它们作为最终字母。
例如:כ=ך,מ=ם,נ=ן,פ=ף,צ=ץ。
我尝试使用以下代码:
# -*- coding: utf-8 -*-
from string import maketrans
text = "לנמנמ זה כיפ"
textSplit = text.split()
translator = maketrans("כמנפצ","ךםןףץ")
correctSpelling = ""
for i in textSplit:
if i[-1]=="כ" or i[-1]=="מ":
correctSpelling += i.translate(translator) + " "
else:
correctSpelling += i + " "
print correctSpelling
输出:לנמנמ זה כיפ。
预期输出:לנמנם זה כיף。
上面的代码没有错误。
在阅读 Unicode HOWTO、Overcoming frustration: Correctly using unicode in python2 和每个软件开发人员绝对、绝对必须了解 Unicode 和字符集(没有任何借口!)之后,是时候询问 stackoverflow 了。
【问题讨论】:
-
那么,您是遇到错误还是...?
-
请详细说明问题,包括您收到的任何错误,以及预期输出与实际输出。
-
看起来您通过切换
intab和outtab参数混淆了对maketrans的调用。即,如果您想将a替换为1、b替换为2等,您应该使用translator = maketrans('abc','123')。 -
原代码中maketrans的顺序没问题,这里改成了从右到左。
-
答案实际上是您链接的第二篇文章的第一段。
标签: python unicode utf-8 hebrew