【问题标题】:Python - how do I create a list of letters from a string with special characters?Python - 如何从具有特殊字符的字符串中创建字母列表?
【发布时间】:2017-04-17 09:10:14
【问题描述】:

我想在 python 中从这个字符串创建一个字母列表:

string = 'utf✮fff'

我试过这个:

>>> string = "utf✮fff"
>>> print list(string)
['u', 't', 'f', '\xe2', '\x9c', '\xae', 'f', 'f', 'f']

但它应该是这样的:

['u', 't', 'f', '\xe2\x9c\xae', 'f', 'f', 'f']

有谁知道如何创建这个输出?提前谢谢!

【问题讨论】:

  • 您正在处理一个字节字符串。如果您希望 Python 识别单个 字符,请使用 unicode 字符串:u'utf✮fff'
  • 谢谢!它有效,我如何将它应用于字符串变量?喜欢:unicodestring = string.encode('unicode')
  • @DanielTremer "unicode" 不是编码。你必须使用 var = unicode(var)
  • @DanielTremer: unicodestring = string.decode('utf8')。但实际上不要称它为字符串,这是标准库模块的名称。

标签: python list encoding utf-8 letters


【解决方案1】:

你必须使用 unicode 字符串:

string = u'utf✮fff'
print list(string)

[u'u', u't', u'f', u'\u272e', u'f', u'f', u'f']


string = 'utf✮fff'
string = unicode(string)
print list(string)

[u'u', u't', u'f', u'\u272e', u'f', u'f', u'f']

请注意,在您的情况下,您必须设置

# coding: utf8

标题。

【讨论】:

  • 有效!这样做没有设置标题:string = 'utf✮fff' string = string.decode('utf-8') string = unicode(string) print list(string)
  • @DanielTremer 这也是有效的 :) 注意你也可以使用 sys.setdefaultencoding('utf8')
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-26
  • 1970-01-01
相关资源
最近更新 更多