在Python中将Unicode西里尔字母符号转换为字符串

5

当我尝试转换Unicode时:

a = u"Тест"

转化为字符串:

str(a)

I got this error:

'ascii' codec can't encode characters in position 0-3: ordinal not in range(128)

我需要str(a)输出结果:
>> str(a)
>> 'Тест'

请查看此链接:https://dev59.com/pXE95IYBdhLWcg3wUMLW - user2286078
我已经关注这个标签几周了,几乎每天都会看到这个问题。在发布之前,你有没有尝试搜索这个错误?这里有500多个结果 - R. Martinho Fernandes
是的,我做了,没有人不处理我的案例。 - UnLiMiTeD
@UnLiMiTeD 或许你应该解释一下为什么其他答案不适用。否则,你最终会得到与其他问题中提供的相同答案。在你这样做之前,我会认为这个问题与其他数百个问题没有区别,并投票关闭它。 - R. Martinho Fernandes
还有一个有用的链接:http://nedbatchelder.com/text/unipain.html - R. Martinho Fernandes
1个回答

4

选择一种能够编码西里尔字母的编码方式,例如 UTF-8:

>>> a = u'Тест'

>>> a.encode('utf-8')
'\xd0\xa2\xd0\xb5\xd1\x81\xd1\x82'

ASCII表格中没有西里尔字母的编码点,因此您需要明确指定编码。 但是,如果您只想打印字符串,则应关心终端和系统字体的编码。

我已经得到了这个,但我需要将它们显示为字符串编码,例如字符串'Test'。 - UnLiMiTeD
1
@UnLiMiTeD 如果你需要的话,搜索“python transliterate cyrillic”会给出这个以及其他一些内容。 - Lev Levitsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接