如何在python中将u'\uf04a'转换为unicode

2024-10-01 11:39:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用python解码u'\uf04a',这样我就可以打印它而不会出现错误警告。换句话说,我需要将愚蠢的microsoftwindows1252字符转换成实际的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'

以这样一个线程为例进行测试:

^{pr2}$

'charmap' codec can't encode character u'\uf04a' in position 1526: character maps to undefined

在两个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', '?')

希望这对其他初学者有所帮助。在


Tags: toininfocomyouhttp错误unicode
2条回答
u'\uf04a'

已经是一个Unicode对象,这意味着不需要解码。如果您的目标是UTF-8这样的特定文件编码(UTF-8与Unicode不同,但总是与Unicode混淆),那么您只能对其进行编码编码。在

^{pr2}$

提供一个字符串(python2)或bytes对象(python3),然后可以将其写入文件或UTF-8终端等

因为cp1252没有这个字符,所以不能将它编码为普通的Windows字符串。在

你可以通过告诉编码器用?替换丢失的字符,把它转换成一种不包含那些有问题字符的编码:

>>> u'who\uf04a why\uf04c'.encode("ascii", errors="replace")
'who? why?'

符号u'\uf04a'表示Unicode代码点U+F04A,根据定义,这是一个私用代码点。这意味着Unicode标准不会给它分配任何字符,而且永远不会;相反,它可以由私有协议使用。在

因此,谈论印刷它是没有意义的。如果在某些上下文中使用它有一个私人协议,那么您可以使用一个为该代码点分配了glyph的字体来打印它。不同的协议和不同的字体可以为同一代码点分配完全不同的字符和字形。在

U+F04A可能是在某个早期阶段对字符数据进行错误处理(例如,错误转换)的结果。在

相关问题 更多 >