我在将带有变音符号的大写字母转换为小写字母时遇到问题。
print("ÄÖÜAOU".lower())
A、O 和 U 得到正确转换,但 Ä、Ö 和 Ü 保持大写。有什么想法吗?
第一个问题已通过 .decode('utf-8') 解决,但我还有第二个问题:
# -*- coding: utf-8 -*-
original_message="ÄÜ".decode('utf-8')
original_message=original_message.lower()
original_message=original_message.replace("ä", "x")
print(original_message)
追溯(最近的调用最后): 文件“Untitled.py”,第 4 行,位于 original_message=original_message.replace("ä", "x") UnicodeDecodeError: 'ascii' 编解码器无法解码位置 0 中的字节 0xc3:序号不在范围内 (128)
最佳答案
除非您使用纯 ASCII,否则您需要将其标记为 unicode 字符串;
> print(u"ÄÖÜAOU".lower())
äöüaou
在处理变量时它的工作原理是一样的,这完全取决于分配给变量的类型。
> olle = "ÅÄÖABC"
> print(olle.lower())
ÅÄÖabc
> olle = u"ÅÄÖABC"
> print(olle.lower())
åäöabc
关于python: lower() 德语变音符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15052830/