Re: [問題] 一個奇怪的漢字編碼問題(Unihan?)

看板Perl作者 (Crazy Rhythm)時間9年前 (2015/08/07 03:35), 9年前編輯推噓2(200)
留言2則, 2人參與, 最新討論串2/5 (看更多)
※ 引述《herculus6502 (金麟豈是池中物)》之銘言: : 在考選部公佈的考畢試題 pdf 檔案中,如果出現"流行"這個詞 : 在 grep 的時候都會找不到 : 仔細檢查後發現,在 linux 上這兩個字比起用輸入法打出來的字"略小",字碼亦不同 : 但在 windows 上似乎刻意地都顯示為較大的"流行"二字 : 實際上的例子我找到這個網頁 http://cs.sungshin.ac.kr/~shim/demo/ksc5601-c.htm : 裏面的"流","行",各有兩個編碼存在 : 找到 wiki 上有關 unihan 的條目,覺得可能是這個問題 : 不知各位網友在實務上有無遇到過類似的問題? 或是該如何解決? : 目前我是用 regex 去取代,但是怕還有其它未爆彈,不知有無現成的對應表? : perl -CSAD -ne 'print $1 if /([\x{f900}-\x{fa2d}])/g' *.txt : 目前我只能先用這行找出有問題的字來轉換 找了一陣子的心得 A. 首先以unicode han 之類的關鍵字去找到了這個wikipedia條目 https://en.wikipedia.org/wiki/CJK_Unified_Ideographs_(Unicode_block) 焦點放在表格下半部,在uni han欄位標示為 not unified的幾個表格 B. 以「行」字去找發現出現在幾個code base 行 -- U+2F8X from Kangxi Radicals block (*1) -- U+FA08 from CJK Compatibility Ideographs block -- U+884C from CJK UNIFIED IDEOGRAPHS (通常打字會打這個出來) ( 或許還有其它…) C. 1. 以得到的三個code point找到 http://www.unicode.org/charts/beta/normalization/chart_Han.html *2 的確是在相鄰的兩列將「行」的code point都列了出來 但可惜不是以類似上述B點的方式列出方便programmer直接使用 2. 以下這個文件內的表格或許能較方便地得到上述B點的結果 http://download.microsoft.com/download/5/0/1/ 501ED102-E53F-4CE0-AA6B-B0F93629DDC6/SharePoint/[MS-FSIN].pdf 請手動拼行 3. Perl lib的 unicore/Decomposition.pl 也有在處理B點的對應 終於找到可能有關的module Unicode::UCD , Text::Unicode::Equivalents D. 試用module 沒有試… 雜想: 1. 有些網站能查詢某個字的其他code point,像是「行」的三個 沒有詳細去看是否有另外提供列表下載 2. 如果加入了unicode的特性——可以兩個字合成一個新字 比如說 U+328E (圈起來的金) 假設可以由 〇+金 組起來的話 〇先不談,由於金也出現在上述B的三個表內 會處理這些字的場合又會複雜一點 3. 這算是漢字在unicode議題上的normalization議題嗎? *1 https://en.wikipedia.org/wiki/Kangxi_radical#Unicode *2 列表在 http://www.unicode.org/charts/beta/normalization/index.html 有在持續更新的unicode說明的站(日文) http://www.asahi-net.or.jp/~ax2s-kmtn/ref/unicode/index_u.html -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.235.212.170 ※ 文章網址: https://www.ptt.cc/bbs/Perl/M.1438889708.A.96B.html ※ 編輯: flu (36.235.212.170), 08/07/2015 03:41:12

08/07 09:22, , 1F
感謝<(_ _)>
08/07 09:22, 1F

09/15 16:16, , 2F
推呀(Y)
09/15 16:16, 2F
文章代碼(AID): #1LmxRibh (Perl)
討論串 (同標題文章)
文章代碼(AID): #1LmxRibh (Perl)