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

作者: gugod (å•Š)   2015-09-16 06:44:07
Unicode 方面的檢索,可直接使用 unicode.org,其中有一頁是
漢字相關的:
http://www.unicode.org/charts/unihan.html
雖然 CTA 做得好像不存在似的,但"Lookup" 鈕旁邊可以輸入漢字,並
查到各重資料。以下是「行」字 ( U+884C )
http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=%E8%A1%8C
在這頁最下面可以看到這碼位有個對應的 kZVariant 是 U+FA08。
關於 z variant 其奇妙無比的解釋,請詳閱
http://www.unicode.org/reports/tr38/index.html#N10211
http://www.unicode.org/reports/tr38/index.html#kZVariant
摘錄如下:
... Briefly, however, the three-dimensional model uses the x-axis to represent meaning,
and the y-axis to represent abstract shape. The z-axis is used for stylistic variations.
簡譯如下:
... 不過簡單地說, 就是以三維模型來表示變種。X 軸表意,Y 軸象型。Z 軸則用來區別風格。
也就是說,如果有兩個碼位互為 Z 變種,表示那兩碼位對應的字是同意同型,但「書寫風格」不同。
不過由許多例子看來,同型倒也不是指筆劃完全相同,實在是很奇妙。)像「說」與「説」這對是 Z 變種,
「貓」與「猫」則是 Y 變種。
要得知哪些碼位有 Z 變種,可下載 Unihan.zip (在頁面左方可找到連結)
ftp://ftp.unicode.org/Public/UNIDATA/Unihan.zip
解開在找 Unihan_Variants.txt 檔案中找 kZVariant
> grep kZVariant Unihan_Variants.txt | perl -CO -aE 'say join " ", map { ($_, chr(hex($_ =~ s/^U\+//r)))} @F[0,2]'
U+3588 U+439B
U+363D U+39B3
U+39B3 U+363D
U+3ADA U+66F6 曶
U+418B U+9F9D 龝
U+439B U+3588
U+4E04 丄 U+4E0A 上
U+4E05 U+4E0B 下
U+4E0A 上 U+4E04 丄
U+4E0B 下 U+4E05
U+4E0C 丌 U+5176 其
U+4E0D 不 U+F967 不
U+4E16 世 U+4E17 丗
U+4E17 丗 U+4E16 世
U+4E18 丘 U+4E20
U+4E21 両 U+5169 兩
U+4E23 U+9149 酉
U+4E26 並 U+5E77
U+4E2C 丬 U+723F 爿
....
(ptt 可能無法儲存某些字,會變問號,請自已試試)
Dan Kogai 曾經釋出 Unicode::Unihan ,基本上是處理這個檔案,但已經七年沒更新了,
自行處理一下可能較為適合。
作者: CindyLinz (Cindy Wang)   2015-09-16 17:41:00
哇~~
作者: herculus6502 (金麟豈是池中物)   2015-09-20 10:02:00
哇+1

Links booklink

Contact Us: admin [ a t ] ucptt.com