Python 3.4中的Unicode字符创建

时间:2015-01-24 16:10:03

标签: unicode python-3.4

使用Python 3.4,假设我有一些来自文件的数据,它实际上是6个单独的字符\ u 0 0 C 0但是我需要将它转换为单个unicode字符\ u00C0。有一种简单的方法可以进行转换吗?我在Python 3.4 Unicode文档中找不到任何似乎提供这种转换的内容,除了使用赋值语句的exec()的复杂方法,如果可能的话我想避免使用它。

感谢。

1 个答案:

答案 0 :(得分:0)

嗯,有:

>>> b'\\u00C0'.decode('unicode-escape')
'À'

但是,unicode-escape编解码器针对字符串编码的特定格式,即Python字符串文字。当面对Python中特殊的其他转义序列时,它可能会产生意外的结果,例如\xC0\n\\\U000000C0,它可能无法识别其他转义序列来自其他字符串文字格式。它也可能错误地处理Basic Multilingual Plane之外的字符(例如JSON会将U + 10000编码为代理\uD800\uDC00)。

因此,除非你的输入数据真的是它的引号分隔符的Python字符串文字,否则这不是正确的做法,它可能会产生一些边缘情况的不需要的结果。有许多格式使用\u来表示Unicode字符;您应该尝试找出它的确切格式,并使用解码器进行该方案。例如,如果文件是JSON,那么正确的做法是使用JSON解析器,而不是尝试自己处理\u / \n / \\ /等。