我正在尝试将 unicode 文本按字面意思转换为字符串,但我似乎找不到执行此操作的方法。
input= u'/123/123/123'
转换为字符串:
output="/123/123/123"
如果我尝试执行 str(),它将对其进行编码,如果我尝试遍历文本并逐个字母转换,它将为我提供每个 unicode 字符。
编辑:考虑到目标不是转换字符串,而是获取 unicode 文本中的字母并创建一个字符串。如果我点击评论中提供的链接:
Convert a Unicode string to a string in Python (containing extra symbols)
import unicodedata
unicodedata.normalize('NFKD', input).encode('ascii','ignore')
output='SSS'
并且可以看到...这不是预期的输出。
编辑:我写了 unicode u'/123' 作为示例,但我试图转换中文字符,示例:
a=u'\u6c34'
str(a)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u6c34' in position 0: ordinal not in range(128)
output_expected="\u6c34"
请您参考如下方法:
正如您在问题中提到的那样,我已尝试使用 str() 对其进行转换,它确实对我有用。您可以使用 type() 检查编码。
>>> input= u'/123/123/123'
>>> type(input)
<type 'unicode'>
>>> output=str(input)
>>> print output
/123/123/123
>>> type(output)
<type 'str'>
您如何尝试在字母之间进行迭代?我试过了,它们仍然是一根绳子。你可以先转换输入,然后在它们是 str 之后做任何你想做的事情:
letters = [x for x in output] for letter in letters: ... print type(letter) ...
希望对您有所帮助!
