【问题标题】:Convert str to unicode in python在python中将str转换为unicode
【发布时间】:2014-04-03 09:06:03
【问题描述】:

美好的一天! 我在将文本解码为 un​​icode 时遇到问题。 我需要转换 str 等于

    '\u4038' # or something like that       

在 ASCII 中,我需要将此字符串转换为一个 unicode 符号。你能解释一下

    len(unicode('\u4038')) 

打印 6,所以这不是解决方案:(

如果需要,生成的符号在大多数情况下都是西里尔字母。

【问题讨论】:

  • 你的意思是你有一个字符串'\\u4038'
  • 为什么会有这个字符串?它从何而来?如果打印出来,你会看到什么?如果这是来自 JSON,您需要 json 模块。
  • 如果您需要unicode-escape,那么您的数据管道中出现了问题。找到'\u4038'的来源并修复它,而不是使用unicode-escape编码。

标签: python string unicode encoding character-encoding


【解决方案1】:

如果你的意思是你有一个字符串'\\u4038',你可以使用unicode-escape encoding

>>> s = b'\\u4038' # == br'\u4038'

>>> print(s)
\u4038
>>> len(s)
6

>>> print(s.decode('unicode-escape'))
䀸
>>> len(s.decode('unicode-escape'))
1

【讨论】:

    【解决方案2】:

    可能有更好的方法,但这里有一个:

    In [27]: s = r'\u4038'
    
    In [28]: len(ast.literal_eval('u"' + s + '"'))
    Out[28]: 1
    

    【讨论】:

      猜你喜欢
      • 2015-09-14
      • 2017-06-20
      • 2013-11-30
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 2018-04-29
      • 2011-10-10
      相关资源
      最近更新 更多