首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python UTF-8小写土耳其专用字母

Python UTF-8小写土耳其专用字母
EN

Stack Overflow用户
提问于 2013-09-26 14:25:26
回答 5查看 9.1K关注 0票数 14

使用python 2.7:

代码语言:javascript
复制
>myCity = 'Isparta'
>myCity.lower()
>'isparta'
#-should be-
>'ısparta'

尝试了一些解码(比如,myCity.decode("utf-8").lower()),但是找不到怎么做。

怎样才能降低这类字母?(‘我>’>‘ı’,‘İ’>‘>’我‘>等等)

编辑:在土耳其语中,小写的I是'ı‘。'i‘的大写是'İ’

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-09-26 14:54:05

有些人建议使用tr_TR.utf8语言环境。至少在Ubuntu (可能与这只虫子相关)上,设置此区域设置不会产生所需的结果:

代码语言:javascript
复制
import locale
locale.setlocale(locale.LC_ALL, 'tr_TR.utf8')

myCity = u'Isparta İsparta'
print(myCity.lower())
# isparta isparta

因此,如果此bug影响到您,作为解决方法,您可以自己执行此翻译:

代码语言:javascript
复制
lower_map = {
    ord(u'I'): u'ı',
    ord(u'İ'): u'i',
    }

myCity = u'Isparta İsparta'
lowerCity = myCity.translate(lower_map)
print(lowerCity)
# ısparta isparta

版画

代码语言:javascript
复制
ısparta isparta
票数 21
EN

Stack Overflow用户

发布于 2014-01-02 15:45:48

您应该使用来自埃姆雷氏溶液的unicode的新派生类。

代码语言:javascript
复制
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()

给出

代码语言:javascript
复制
KİTAP
kitap

这必须解决你的问题。

票数 9
EN

Stack Overflow用户

发布于 2019-06-11 08:30:36

您只需使用.replace()函数才能更改为上/下。就你而言:

代码语言:javascript
复制
    myCity.replace('I', 'ı').lower()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19030948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档