如何在PYTHON中将u';uf04a&39;转换为Unicode
问题描述
我正在尝试在python中解码u‘uf04a’,这样我就可以打印它而不会出现错误警告。换句话说,我需要将愚蠢的Microsoft Windows 1252字符转换为实际的Unicode
包含异常错误的html的源代码来自这里http://members.lovingfromadistance.com/showthread.php?12338-HAVING-SECOND-THOUGHTS
单击此处http://www.fileformat.info/info/unicode/char/f04a/index.htm阅读有关u‘uf04a’和u‘uf04c’的信息
一个示例如下所示:
"Oh god please some advice ":
out[408]:哦,上帝,请给我一些建议uf04c‘
给出一个这样的线程作为测试示例:
thread = u'who are you uf04a Why you are so harsh to her uf04c'
thread.decode('utf8')
print u'uf04a'
print u'uf04a'.decode('utf8') # error!!!
‘charmap’编解码器无法对位置1526中的字符u‘uf04a’进行编码:字符映射到未定义
在两个Python脚本的帮助下,我成功地转换了u‘x92’,但我仍然使用u‘uf04a’。有什么建议吗?
参考资料
https://github.com/AnthonyBRoberts/NNS/blob/master/tools/killgremlins.py
Handling non-standard American English Characters and Symbols in a CSV, using Python
解决方案:
根据下面的评论:我将这些字符集替换为问号(‘?’)
thread = u'who are you uf04a Why you are so harsh to her uf04c'
thread = thread.replace(u'uf04a', '?')
thread = thread.replace(u'uf04c', '?')
希望这对其他初学者有帮助。
解决方案
u'uf04a'
已经是Unicode对象,这意味着没有什么要解码的。如果您的目标是像UTF-8这样的特定文件编码(与Unicode不同,但一直与其混淆),则您可以对其执行的唯一操作是编码。
u'uf04a'.encode("utf-8")
为您提供一个字符串(Python2)或bytes
对象(Python3),然后您可以将其写入文件或UTF-8终端等。
您将无法将其编码为纯Windows字符串,因为cp1252没有该字符。
您可以做的是通过告诉编码器将丢失的字符替换为?
:
>>> u'whouf04a whyuf04c'.encode("ascii", errors="replace")
'who? why?'
相关文章