筆記:此"巿"非彼"市"
最近處理資料遇到一個問題,明明看起來很像的兩個中文字串,範例如下: 高雄巿鼓山區河西一路1437號 高雄市鼓山區河西一路1437號 但是搜尋比對就是搜尋比對不到 用出絕招(HEXDUMP)之後才知道這兩個字不一樣。 上面的"巿" UNICODE編碼是 5dff (T2-213D) 上面的"市" UNICODE編碼是 5e02 (T1-464B) 上 http://unicode.org/charts/ 查了一下,兩的字顯示出來都是類似。 繼續追查下去,在詳記說明文件 http://www.unicode.org/charts/PDF/U4E00.pdf 看到幾個關鍵字:CJK,在 WIKI 中日韓統一表意文字 知道了 CJK是中日韓,還有引伸的CJKV,加上越南這四個有用到中文的國家。 往下翻,提到T1 T2的說明: T1: CNS 11643-1986第一字面,約八千字 T2: CNS 11643-1986第二字面,約八千字 到這裡終於水落石出,某個資料來源用了比較罕見、上面那點垂直的"巿",所以電腦把他們當作不同字,但是人眼不特別看還看不出來。 所以在字串處理上又多一個對應字置換的環節,來處理相似字的問題。 順帶一提,之前看雨狗的網誌 http://raindog.pixnet.net/blog/post/33734339 提到類似的問題,雨狗的專業跟觀察力也非一般人啊! 參考資料: Unicode官方: http://unicode.org/charts/ http://www.unicode.org/charts/PDF/U4E00.pdf http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=5DFF&useutf8=true WIKI: https://zh.wikipedia.org/wiki/%E4%B8%AD%E6%97%A5%E9%9F%93%E7%B5%B1%E4%B8%80%E8%A1%A8%E6%84%8F%E6%96%87%E5%AD%97 https://zh.wikip