2024-10-01 19:26:30 发布
网友
使用python 2.7时:
>myCity = 'Isparta' >myCity.lower() >'isparta' #-should be- >'ısparta'
试过解码,(比如,我的城市。解码(“utf-8”).lower()),但找不到方法。在
这种字母怎么能放低一点?(“I”>;“ı”、“İ”>;“I”等)
编辑:在土耳其语中,“I”的小写字母是“ı”。“i”的大写字母是“İ”
{您应该使用从^派生自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()
给予
这一定能解决你的问题。在
您需要使用locale.setLocale()设置正确的语言环境(我猜是tr tr)。否则将使用默认的上下映射,如果默认值为en-US,I的小写版本为i。在
locale.setLocale()
I
i
有些人建议使用tr_TR.utf8语言环境。至少在Ubuntu上,可能与this bug有关,设置此区域设置不会产生所需的结果:
tr_TR.utf8
import locale locale.setlocale(locale.LC_ALL, 'tr_TR.utf8') myCity = u'Isparta İsparta' print(myCity.lower()) # isparta isparta
因此,如果此错误影响到您,作为解决方法,您可以自己执行此翻译:
印刷品
ısparta isparta
{您应该使用从^派生自unicode的新类}
给予
^{pr2}$这一定能解决你的问题。在
您需要使用
locale.setLocale()
设置正确的语言环境(我猜是tr tr)。否则将使用默认的上下映射,如果默认值为en-US,I
的小写版本为i
。在有些人建议使用
tr_TR.utf8
语言环境。至少在Ubuntu上,可能与this bug有关,设置此区域设置不会产生所需的结果:因此,如果此错误影响到您,作为解决方法,您可以自己执行此翻译:
^{pr2}$印刷品
相关问题 更多 >
编程相关推荐