[译] Z-variant (Z变体)
阅读目录
Unihan 的 kZVariant 字段
译自: en.wikipedia.org/wiki/Z-variant | 已发布zh.wiki
在Unicode中,如果两个字形共享相同的词源(etymology),但外观和Unicode字符编码稍有不同,则两个字形互为Z变体(通常拼写为zVariants)。例如,Unicode字符U+8AAA 說 和U+8AAC 説 互为Z变体。Z变体的概念只适用于“CJKV 文字” (中文,日语,韩语和越南语),中日韩越统一表意文字的副标题。
1. Z轴上的区别
CJK 的 unicode 编码的分配通过三个"轴"来组织。X轴表示语义上的差异;例如,拉丁大写字母A(U + 0041A)和希腊字母α的大写字母(U + 0391A)在Unicode中由两个不同的编码表示,称为“X变体”(尽管这个术语并不常见)。Y轴表示外观上的显著差异,语义上差异不大;例如,繁体字“猫”(u+8c93 貓)和简体字(u+732b 猫 )互为Y变体。
Z轴表示较小的印刷差异。 例如,中文字符(U+838A 莊)和(U+8358荘)是Z变体, (U+8AAA 說) 和 (U+8AAC 説) 也同样是Z变体。 Unicode.org 的术语表中,将“Z-变体”定义为“两个具有相同语义和统一形状的CJK统一表意文字”,或者是在CJKV统一表意文字中。
可以这样讲,如果CJK统一表意文字是完美“统一”的,Z变体也不会出现。它的出现是为了帮助文本在Unicode和其他CJK编码——比如Big5和CCCII——之间"往返"。例如,字符 “莊” 的CCCII编码为 21552D,同时其Z变体 “荘” 则有CCCII编码 2D552D。这两个变体分别被赋予了不同的Unicode码,因此可以无损的将文本在CCCII编码和Unicode码之间转换。
2. 问题
关于"Z变体"确切的定义, 还存在一些疑惑。例如,在2002年的一项 Internet草案 (RFC 3743)中, (U+4E0D 不) 和 (U+F967 不) 被定义为“字形变体(font variants)”,而普通话中的 (U+5154 兔) 和日语中的(U+514E 兎) ——语义都是“兔子”——则都被Unicode联盟的统汉字数据库认为是Z变体。
[译] Z-variant (Z变体)的更多相关文章
- 变体类型 Variant VARIANT
变体类型 Variant VARIANT class RTL_DELPHIRETURN Variant: public TVarData typedef struct tagVARIANT V ...
- 二叉查找树及B-树、B+树、B*树变体
动态查找树主要有二叉查找树(Binary Search Tree),平衡二叉查找树(Balanced Binary Search Tree), 红黑树 (Red-Black Tree ), 都是典型的 ...
- (转) 干货 | 图解LSTM神经网络架构及其11种变体(附论文)
干货 | 图解LSTM神经网络架构及其11种变体(附论文) 2016-10-02 机器之心 选自FastML 作者:Zygmunt Z. 机器之心编译 参与:老红.李亚洲 就像雨季后非洲大草原许多野 ...
- 【Visual Lisp】变体与安全数组
(vlax-make-variant) ;;创建一个未初始化的变体 ;;01.整型值变体(setq myvar (vlax-make-variant 10)) ;;创建整型值变体,返回 #<va ...
- Delphi 变体数组 Dataset Locate 查找定位
Format 函数 Delphi 支持“开参数”和动态数组,变体数组,使用时的语法类似 Delphi 中的集合:采用两个方括号把不同类型的变量括起来(这太方便了啊),也可以采用声明一个 TVarRec ...
- Gradle for Android ( 构建变体 )
链接: http://77blogs.com/?p=38 https://www.cnblogs.com/tangZH/p/10999060.html 有时候我们一个app需要有不同的版本,不同的版本 ...
- Provide Several View Variants for End-Users 为最终用户提供多个视图变体
In this lesson, you will learn how to provide several customized variants of the same View, and allo ...
- 【转载】Gradle for Android 第四篇( 构建变体 )
当你在开发一个app,通常你会有几个版本.大多数情况是你需要一个开发版本,用来测试app和弄清它的质量,然后还需要一个生产版本.这些版本通常有不同的设置,例如不同的URL地址.更可能的是你可能需要一个 ...
- Prafab Varient 预制体变体
预制体与类的类比思维: 预制体相当于一个类,当它应用到场景当中,就是一个实例. 类的继承特性也充分运用到预制体中,即预制体变体. 相似预制体的需求场景: 例子1:多个游戏的窗口 ...
随机推荐
- Drupal V7.3.1 框架处理不当导致SQL注入
这个漏洞本是2014年时候被人发现的,本着学习的目的,我来做个详细的分析.漏洞虽然很早了,新版的Drupal甚至已经改变了框架的组织方式.但是丝毫不影响对于漏洞的分析.这是一个经典的使用PDO,但是处 ...
- Flutter视图基础简介--Widget、Element、RenderObject
前言:Flutter官方文档里的一句话:you build your UI out of widgets(使用Flutter开发UI界面时,都是使用Widget),然而,Widget并不是我们真正看到 ...
- C#中子类和父类
在实例化子类的时候,总是先调用父类的无参构造函数
- python的面向对象和类
目录 一.基本知识点 1.面向过程编程 2.面向对象编程 3.注意 二.类的结构 1.类的理解 2.代码形式 3.类和函数的一些区别 4.类中的数据 5.类中的方法(基础) 三.类的实例化 四.类的继 ...
- 深入理解react中的虚拟DOM、diff算法
文章结构: React中的虚拟DOM是什么? 虚拟DOM的简单实现(diff算法) 虚拟DOM的内部工作原理 React中的虚拟DOM与Vue中的虚拟DOM比较 React中的虚拟DOM是什么? ...
- 【Kafka源码】Kafka启动过程
一般来说,我们是通过命令来启动kafka,但是命令的本质还是调用代码中的main方法,所以,我们重点看下启动类Kafka.源码下下来之后,我们也可以通过直接运行Kafka.scala中的main方法( ...
- 什么是O/RMapping?为什么要用O/R Mapping?
什么是O/R Mapping ? O/R Mapping 就是有一大堆的类库,我们调用它的时候用面向对象的方式来调,它帮我们翻译成为面向关系的方式. 为什么要用O/R Mapping? 我们编程会更加 ...
- 关于chrome浏览器事件拖动的bug(首次点击的时候也触发move的事件)
在做R80web的时候出现一个奇怪的现象,chorme现在的版本还是存在,拖动事件有mousedown.mousemove.mouseup组成,但是首次click以及失去焦点再重新点击的时候同样会触发 ...
- goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略
声明:这里面的代码均为网上找的然后有小小的改动,并非原创.但文章为原创 一..编译 1.1,.下载:进入http://embedthis.com/goahead/下载goahead3.6.3(2017 ...
- Oracle 12c JDBC 连接
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...