【问题标题】:accessing characters of urdu script访问乌尔都语字符
【发布时间】:2016-07-19 23:20:31
【问题描述】:

我有以下字符串

test="ن گ ب ن د ی ک ر و ا ن "

我想要的是我想访问每个字符并将其保存在一些变量中以供将来访问,但是当我循环它们时,我得到了奇怪的输出。实际上我不太了解编码方案。

for i in test:
    print(i)

上面的代码给了我一些奇怪的字符我想要的是原始脚本字符吗?

【问题讨论】:

  • 您打印的控制台是否支持这些字符?在我的 Ubunut 上,它工作正常。你的 Python 文件是如何编码的?
  • 你使用 Python 3 还是 Python 2?

标签: python python-2.x urdu


【解决方案1】:

要么将test 定义为Unicode 字符串,要么使用decode 方法:

test="ن گ ب ن د ی ک ر و ا ن"
for i in test.decode('utf8'):
    print(i)
    # print unicode value
    print(repr(i))

test=u"ن گ ب ن د ی ک ر و ا ن"
for i in test:
    print(i)
    # print unicode value
    print(repr(i))

显然我的回答涉及 Python 2.7.x。

【讨论】:

  • @FullName 是的,但是它的代码不会打印奇怪的字符
  • 问题中的代码复制并粘贴到支持 Unicode 的终端上的交互式 Python 3 会话中,没有任何问题。所以这个问题是不完整的。
  • @Frodon 您在 Python 3 中使用的第一个代码片段会抛出 AttributeError: 'str' object has no attribute 'decode'
  • @FullName 是的,这就是为什么写成Obviously my answer concerns Python 2.x
  • print(i) 不是 Python 2。问题不清楚。
【解决方案2】:

对于 Python 2.x,试试这个:

test=u"ن گ ب ن د ی ک ر و ا ن "
for i in test:
    print(i)

附加u 使其成为unicode 对象。

【讨论】:

  • 你为什么确定他使用的是 Python 2.x?
  • 我不是这就是我编辑答案的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多