我通过websocket连接接收str数据,并尝试去除重音符号(以及降低文本/将“”转换为“-”…)
而我,即使在这里被问了几百个问题并得到了回答,我仍然没有做到。在
下面是尝试执行此操作的代码部分,解析为要翻译的文本[4][7:]
if parsed[4][:6]=="!strat":
shiftedtxt=''
txt=parsed[4][7:].lower().decode('unicode-escape')
hope=''.join((c for c in unicodedata.normalize('NFD', txt) if unicodedata.category(c) != 'Mn'))
for i in hope:
if i==' ':
shiftedtxt+='-'
else:
shiftedtxt+=i
ws.send(room+"|http://pokestrat.com/fiche_pokemon/"+shiftedtxt+".php")
我通常会把“Ténéfix”翻译成“tenefix”。在
根据这个网站上的答案,我使用
^{2}$方法。在
逐步尝试时:
'éô'.decode('unicode-escape')
收益率
u'\xe9\xf4'
以及
>>> s=u'\xe9\xf4'
>>> ''.join((c for c in unicodedata.normalize('NFD', s) if unicodedata.category(c) != 'Mn'))
收益率
u'eo'
因此,事情应该。。工作?但他们没有。 例如,“ténéfix”返回“tA©nA©fix”,我无法解释。 为什么?在
编辑:以下是完整代码:http://pastebin.com/aJ1Rk1pV
确实要将提交的文本的一部分解析为Python unicode字符串文本吗?这似乎不太可能。
!strat Ténéfix
不包含任何Python字符串转义符(如\uNNNN
,\n
等)。在根据
^{pr2}$tA©nA©fix
判断,您接收的是UTF-8编码的字节,但您将它们解码为ISO-8859-1,这是unicode-escape
的直通编码。相反,请尝试:在将字节序列转换为Unicode文本后,需要使用小写。在
要实现这一点,您的终端必须将字符
éô
作为ISO-8859-1(或类似的Windows代码页1252)发送。这与websocket提供的UTF-8编码不同,所以结果不同。在相关问题 更多 >
编程相关推荐