使用python 2.7:
>myCity = 'Isparta'
>myCity.lower()
>'isparta'
#-should be-
>'ısparta'尝试了一些解码(比如,myCity.decode("utf-8").lower()),但是找不到怎么做。
怎样才能降低这类字母?(‘我>’>‘ı’,‘İ’>‘>’我‘>等等)
编辑:在土耳其语中,小写的I是'ı‘。'i‘的大写是'İ’
发布于 2013-09-26 14:54:05
有些人建议使用tr_TR.utf8语言环境。至少在Ubuntu (可能与这只虫子相关)上,设置此区域设置不会产生所需的结果:
import locale
locale.setlocale(locale.LC_ALL, 'tr_TR.utf8')
myCity = u'Isparta İsparta'
print(myCity.lower())
# isparta isparta因此,如果此bug影响到您,作为解决方法,您可以自己执行此翻译:
lower_map = {
ord(u'I'): u'ı',
ord(u'İ'): u'i',
}
myCity = u'Isparta İsparta'
lowerCity = myCity.translate(lower_map)
print(lowerCity)
# ısparta isparta版画
ısparta isparta发布于 2014-01-02 15:45:48
您应该使用来自埃姆雷氏溶液的unicode的新派生类。
class unicode_tr(unicode):
CHARMAP = {
"to_upper": {
u"ı": u"I",
u"i": u"İ",
},
"to_lower": {
u"I": u"ı",
u"İ": u"i",
}
}
def lower(self):
for key, value in self.CHARMAP.get("to_lower").items():
self = self.replace(key, value)
return self.lower()
def upper(self):
for key, value in self.CHARMAP.get("to_upper").items():
self = self.replace(key, value)
return self.upper()
if __name__ == '__main__':
print unicode_tr("kitap").upper()
print unicode_tr("KİTAP").lower()给出
KİTAP
kitap这必须解决你的问题。
发布于 2019-06-11 08:30:36
您只需使用.replace()函数才能更改为上/下。就你而言:
myCity.replace('I', 'ı').lower()https://stackoverflow.com/questions/19030948
复制相似问题