1 背景
部分漢字 存在 兼容表意文字 問題,同一字源中不同寫法的漢字生蚁,在Mac上看起來一樣肋拔,實(shí)際上編碼不同氛魁。
比如在Python中運(yùn)行如下代碼:
print("?" == "人")
結(jié)果竟然是False
為什么呢编饺,因?yàn)檫@其實(shí)是兩個(gè)不同的字乖篷,但是在mac上會(huì)顯示的一模一樣。
我們?nèi)ゲ樽址幋a會(huì)發(fā)現(xiàn)是兩個(gè)不同的編碼:
編碼1.png
編碼2.png
字符集查詢地址:
2 解決方案
在代碼中比較時(shí)透且,會(huì)出現(xiàn)比較失敗的情況撕蔼,
沒什么好辦法,這種case全都替換掉:
return str.replace("?", "人")
.replace("?", "生")
.replace("?", "小")
.replace("?", "玉")
.replace("?", "大")
.replace("?", "月")
.replace("?", "牛")
.replace("?", "高")
.replace("?", "兒")
.replace("?", "二")
.replace("?", "金")
.replace("?", "文")
.replace("?", "山")
.replace("?", "香")
.replace("?", "艮")
.replace("?", "立")
.replace("?", "八")
.replace("?", "田")
.replace("?", "火")
.replace("?", "子");
3 參考文獻(xiàn):
Unicode字符兼容性問題秽誊,一樣漢字為何有不同編碼:
請勿使用“兼容表意文字區(qū)”的漢字:
這里有個(gè)更全的字典:
https://blog.hawkhai.com/blog/2021/03/14/Equivalent-Unified-Ideograph