Sha*_*ley 13 unicode go case-folding
我试图让case折叠在三种语言(C++,Python和Golang)之间保持一致,因为我需要能够检查字符串是否与保存的字符串相匹配.
一个有问题的例子是德语单词"grüßen",大写字母是"GRÜSSEN"(注意''''变成两个字符'SS').
有没有办法做到这一点我缺少,或者unicode文档末尾的这个bug是否适用于golang文本转换的所有用法?如果是这样的话,除了在cgo中编写之外,我有什么选择案例折叠?
高级(启用Unicode的)文本处理不是Go stdlib的一部分,¹以golang.org/x/text/伞下的一系列("祝福")第三方包的形式存在.
正如肖恩自己想象的那样,人们可以做到
import (
"golang.org/x/text/cases"
)
c := cases.Fold()
c.String("grüßen")
Run Code Online (Sandbox Code Playgroud)
得到"grüssen"回来.
¹那是因为stdlib中提供的任何内容都受Go 1兼容性承诺的约束 ,并且在Go 1发布时,某些功能无法使用或者不完整或其API处于不稳定状态等,因此这些位不在让他们成熟的核心.
| 归档时间: |
|
| 查看次数: |
395 次 |
| 最近记录: |