加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 更改包含重音符和本地字母的unicode字符串中的字母大

发布时间:2020-12-16 23:53:22 所属栏目:Python 来源:网络整理
导读:Python字符串和unicode对象具有以下用于字符串大小写转换的方法. 上() lower() 标题() 使用unicode字符串,我可以处理本地字母表中的几乎所有字符: test_str = u"?as ?ak ürt ?rkl"print test_str.upper() ?AS ?AK üRT ?RKL 除了两个字母.由于我住在土耳其

Python字符串和unicode对象具有以下用于字符串大小写转换的方法.

>上()
> lower()
>标题()

使用unicode字符串,我可以处理本地字母表中的几乎所有字符:

test_str = u"?as ?ak ürt ?rkl"
print test_str.upper()
>> ?AS ?AK üRT ?RKL

除了两个字母.由于我住在土耳其,我有典型的Turkish I problem.

在我当地的字母表中,我们有一封与我类似的字母?,他们的案例转换必须如下

我→小写→?

我→大写→?

是的,它破坏了i – >的ASCII转换.因为我和我是两个单独的信件.

test_str = u"ik"
print test_str.upper()
>> IK  # Wrong! must be ?K
test_str = u"IK"
print test_str.lower()
>> ik  # Wrong! must be ?k

我怎么能克服这个?有没有办法使用python内置函数正确处理大小写转换?

最佳答案
Python目前不支持特定于语言环境的案例折叠,也不支持Unicode SpecialCasing.txt中的其他规则.如果您今天需要它,您可以从PyICU获得它们.

>>> unicode( icu.UnicodeString(u'IK').toLower(icu.Locale('TR')) )
u'?k'

虽然如果你关心的只是土耳其语I,你可能更喜欢特殊情况.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读