【问题标题】:Converting words with String upper() does not work for certain letters?使用 String upper() 转换单词对某些字母不起作用?
【发布时间】:2016-11-05 01:56:22
【问题描述】:

大家好,我希望你们能帮我解决这个问题,我有几个小时试图解决它

使用此代码:

#!/usr/bin/python
# -*- encoding: utf-8 -*-

frase = 'La canción de la piña'
print frase.upper()

我刚得到“LA CANCIón DE LA PIñA”,问题是它不会将“ñ”变成“Ñ”或“Ó”中的“ó”

有什么想法吗?

【问题讨论】:

  • python3 中像梦一样工作,在python2 中你需要明确地制作unicode 字符串(u'')

标签: python python-2.7 unicode


【解决方案1】:

使用 unicode 字面量(以 u 开头的字符串字面量)来表示 unicode 字符串:

>>> frase = u'La canción de la piña'
>>> print frase.upper()
LA CANCIÓN DE LA PIÑA

更新

在文件开头添加以下行可启用自动 unicode 文字。 (在交互式 shell 中,import 语句后面的语句会受到影响。)

from __future__ import unicode_literals

__future__ - future statement definitions

【讨论】:

  • from __future__ import unicode_literals 可能会默认启用 Unicode 文字。
  • @J.F.Sebastian,感谢您提供的信息。我相应地更新了答案。
【解决方案2】:

Unicode 文字:

试试这个:

frase = u'La canción de la piña'

【讨论】:

    猜你喜欢
    • 2013-01-24
    • 2017-12-02
    • 2012-12-26
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    相关资源
    最近更新 更多