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