信不信由你,這個詞的 iota(最后一個字母)似乎在 unicode 中以兩種不同的方式編碼:ε?μ?(帶有 TONOS 的 U+03AF 的希臘小寫字母 IOTA)ε?μ?(帶 OXIA 的希臘小寫字母 IOTA' U+1F77)我假設有時字母被編碼為單個字母,而在其他時候它被編碼為字母+重音。是否有某種地圖或數(shù)據(jù)庫允許我們在我可以導入到我的代碼中的一個或另一個之間進行轉換。
1 回答

繁花如伊
TA貢獻2012條經(jīng)驗 獲得超12個贊
信不信由你
讓我們離開幻想世界吧。
希臘語 Unicode 范圍內(nèi)重復的元音 + oxia 字符
例如,
package main
import (
"bytes"
"fmt"
"golang.org/x/text/unicode/norm"
)
func Equal(a, b string) bool {
var ia, ib norm.Iter
ia.InitString(norm.NFKD, a)
ib.InitString(norm.NFKD, b)
for !ia.Done() && !ib.Done() {
if !bytes.Equal(ia.Next(), ib.Next()) {
return false
}
}
return ia.Done() && ib.Done()
}
func main() {
a := "ε?μ\u03AF"
b := "ε?μ\u1F77"
fmt.Println(a)
fmt.Println(b)
fmt.Println(a == b)
fmt.Println(Equal(a, b))
}
輸出:
ε?μ?
ε?μ?
false
true
- 1 回答
- 0 關注
- 120 瀏覽
添加回答
舉報
0/150
提交
取消