[英]Encode Decode using python
我在python中有此功能
Str = "ü";
print Str
def correctText( str ):
str = str.upper()
correctedText = str.decode('UTF8').encode('Windows-1252')
return correctedText;
corText = correctText(Str);
print corText
它可以工作并转换¼和Ã等字符,但是当我尝试Ã时却失败了。 和¶
有办法解决吗?
根据UTF8,Ã和¶不是有效字符,这意味着字节数不能被4整除(通常)。 您需要做的是使用其他类型的编码,或者通过使用unicode()函数消除str中的错误。 我建议使用梯子。
您想要做的是由几个连续的Windows-1252代码组成有效的UTF-8代码。
例如,对于ü
,的的Windows 1252代码Ã
是C3
和¼
这是BC
。 代码C3BC
恰好是ü
的UTF-8代码。
现在,对于Ã?
,Windows-1252代码为C33F
,它不是有效的UTF-8代码(因为第二个字节不是以10
开头)。
您确定此顺序出现在您的文本中吗? 例如,对于à
,UTF-8代码(C3A0)的Windows-1252解码后跟Ã
然后是不可打印字符(不间断空格)。 因此,如果第二个字符未打印,则?
可能是文本的常规字符。
对于¶
在Windows-1252编码C2B6
。 它不应该是ö
,为此,在Windows 1252编码是C3B6
,相当于的UTF-8编码ö
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.