我写了一个简化版本来演示这个问题。我用utf-8和utf-16格式编码特殊字符。在
使用utf-8编码没有问题,当我用utf-16编码时,我会得到一些奇怪的前导字符。在
我试图删除所有的尾随和前导字符,但错误仍然存在。在
代码示例:
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import chardet
def myEncode(s, pattern):
try:
s.strip()
u = unicode(s, pattern)
print chardet.detect(u.encode(pattern, 'strict'))
return u.encode(pattern, 'strict')
except UnicodeDecodeError as err:
return "UnicodeDecodeError: ", err
except Exception as err:
return "ExceptionError: ", err
print myEncode(r"""Test !"#$%&'()*+-,./:;<=>?@[\]?_{@}~& € ÄÖÜ äöüß £¥§""",
'utf-8')
print myEncode(r"""Test !"#$%&'()*+-,./:;<=>?@[\]?_{@}~& € ÄÖÜ äöüß £¥§""",
'utf-16')
输出示例:
^{pr2}$我哪里做错了,我想不通。我不想把UTF-16转换回UTF-8,保持UTF-16格式对我来说很重要。在
更新:感谢@tripleee,我的问题的解决方案是定义编码UTF-16le或UTF-16be。再次感谢您的时间和努力。在
提前感谢大家的时间和努力。在
这个问题的答案是由@tripleee给出的。在
通过定义utf-16le或utf-16be代替utf-16解决了这个问题。在
溶液样品:
输出示例:
^{pr2}$相关问题 更多 >
编程相关推荐