我需要用UNICODE(Sinhala)替换ANSII字符。我使用带循环的列表来执行以下操作,
for i in range (len(charansi)):
for j in range (len(charUni)):
s = charansi[i] + ansimod[j]
v = charUni[i] + modUni[j]
textSource = textSource.replace(s, v)
如果我们使用n + uu作为ANSII输入,它应该给出out作为Unicode输出。但不是那样,它给出了නූ
澄清更多,
charansi = n
ansimod = uu
charUni = න
modUni = ූ
此න和ූ必须在没有空格的情况下加入。我认为ZWJ(\ u200D)在这里发挥了作用。所以我试过
v = u"\u200D".join((consonantsUni[i], vowelModifiersUni[j]))
给出相同的结果。
如何解决此问题?
答案 0 :(得分:0)
您的问题有点令人困惑,但这只是有效:
#coding:utf8
charansi = 'n'
ansimod = 'uu'
charUni = 'න'
modUni = 'ූ'
v = s.replace(charansi+ansimod,charUni+modUni)
print(v)
输出:
නූ
如果这不是您想要的,请创建一个问题的工作示例。
您还可以使用以下内容使字符更清晰。至少在我的浏览器上,修改器没有很好地显示。
charUni = '\N{SINHALA LETTER DANTAJA NAYANNA}'
modUni = '\N{SINHALA VOWEL SIGN DIGA PAA-PILLA}'