Skip to main content
 首页 » 编程设计

python之Unicode as String 无需转换 Python

2025年05月04日24qq号

我正在尝试将 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) ...

希望对您有所帮助!