gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 01:15:22 28 4
gpt4 key购买 nike

Python 字符串和 unicode 对象有以下字符串大小写转换方法。

  • upper()
  • 降低()
  • title()

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

test_str = u"ças şak ürt örkl"
print test_str.upper()
>> ÇAS ŞAK ÜRT ÖRKL

除了两个字母。因为我住在土耳其,所以我有典型的Turkish I problem .

在我的本地字母表中,我们有一个字母 İ 类似于 I 并且它们的大小写转换必须如下所示

I → 小写 → ı

i → 大写 → İ

是的,它破坏了 i --> I 的 ASCII 转换,因为 iI 是两个不同的字母。

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,您可能更愿意将其特殊化。

关于python - 更改包含重音和本地字母的 unicode 字符串中字母的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22198797/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com