首页 > 解决方案 > 如何在 python 列表中添加非 ASCII 字符?

问题描述

我是python的新学习者。我想要一个包含非 ASCII 字符的字符串列表。

这个答案提出了一种方法来做到这一点,但是当我尝试代码时,我得到了一些奇怪的结果。请参阅以下 MWE -

#-*- coding: utf-8 -*-
mylist = ["अ,ब,क"]
print mylist

输出是['\xe0\xa4\x85,\xe0\xa4\xac,\xe0\xa4\x95']

当我在列表中使用 ASCII 字符时,假设["a,b,c"]输出也是['a,b,c']. 我希望我的代码输出为 ["अ,ब,क"]

这个怎么做?

PS - 我正在使用 python 2.7.16

标签: python-2.7utf-8

解决方案


您想将这些标记为 Unicode 字符串。

mylist = [u"अ,ब,क"]

根据您要完成的任务,如果数据只是一个字符串,它可能不需要在列表中。或者也许你想要一个字符串列表?

mylist = [u"अ", u"ब", u"क"]

Python 3 为使用 Unicode 带来了很多缓解(并且不需要uUnicode 字符串前面的印记,因为所有字符串都是 Unicode),并且绝对应该是你的学习目标,除非你在 Python 之后专门负责维护遗留软件2在今年年底正式放弃。

无论您的 Python 版本如何,在您的系统上显示Unicode可能仍然存在问题,特别是在旧系统和 Windows 上。

如果您不熟悉编码问题,您将需要阅读每个软件开发人员绝对、肯定必须了解 Unicode 和字符集(没有借口!)的绝对最小值,也许还有 Python 特定的实用 Unicode


推荐阅读