BG5BJM HAM 📡

一些产品设计的约定

此清单列出了一些产品设计、定义中某些功能的默认情况下的约定,除特殊说清的一般情况下以国际标准、国家标准为准,参照的标准同时列在下方。

数量关系

规范年龄、期限、尺度、重量等数量关系,涉及以上、以下、以内、不满、超过的规定时,「以上、以下、以内」均含本数,「不满、超过」均不含本数。

——参考《立法技术规范(试行)(一)》(法工委发【2009】62号)和《立法技术规范(试行)(二)》(法工委发【2011】5号)

排版

中文排版

中文排版

换行

non-CJK 等按空格分词的,单个词汇不应被截断。应按词换行。

CJK 等逐字书写的,按字换行。如须按词换行时,词内每两个字符中间应增加词连接符(WORD JOINER)。

语言

标点符号用法

连接符

短横线「-」U+002D
一字线「—」U+2014 或波浪线「~」U+FF5E

《〈标点符号用法〉解读》提到,一字线(—)和浪纹线(~)读为「至」或「到」,短横线(-)不读或读为「杠」(当然也有特殊情况)。因此,对于需要读为「至」或「到」的地方,使用短横线(-)通常是错误的。

间隔号

少数民族名字处理

参考 国家通用语言文字相关法律法规和标准关于在政府管理和社会公共服务信息系统中统一姓名采集应用规范的通知 民委发﹝2016﹞33号 之规定。

排序

行政区划排序

行政区划排序应以标准中规定的顺序为准。中华人民共和国行政区划代码 GB/T 2260—2007

示例:北京市(110000)、天津市(120000)、河北省(130000)、山西省(140000)……

语言排序

ISO/IEC 14651:2020 Information technology – International string ordering and comparison

在定义排序前,先定义下什么是汉字?汉字是开放的、无限的集合,任何人都可以自造汉字,因此在过去几千年里,汉字文化圈的中国、日本、朝鲜、越南等地各自创造了诸多汉字、异体字,它们的写法、含义、读音各不相同。没有任何一个人可以说能归纳所有汉字、也不可能给出明确的汉字数量。那么无限的汉字又怎能用有限的集合定义顺序呢?

但是我们可以按照如下几个视角分析、使用汉字:

接下来的排序都在 ISO/IEC 10646 中已编码汉字范围内讨论。

拼音排序

每个汉字有多种读音,同一个汉字在普通话、广东话、中古音(唐朝、宋朝汉语)、越南语、朝鲜语中的发音不同。为任何一个汉字表示准确的发音注定充满困难,因为读音会随时间、地点的变化而变化。即使是同一个说话的人,同一个汉字的发音也会因语境的不同而有所不同。甚至一些极其罕见的汉字只有极少数的人知道如何发音。在许多情况下,专业词典编纂者给出的发音只不过是有根据的猜测。尽管存在种种困难和问题,定义汉字的读音往往有很大用处。

因此,为每个汉字定义一个最习惯普通话读法的拼音kMandarin,用与排序和比较、音译。注意,它并不一定是某些字典中的首选读音。也不是所有的汉字都有这个属性。

汉字读音数据库位于Unicode Character Database/Unihan.zipUnihan_Readings.txt数据库中。

排序分别为:汉语拼音>音调(阴阳上去)>笔划 kTotalStrokes>部首 kRSUnicode

所有汉字排序集位于cldr/zh.xml

<collation type='private-pinyin'>
    <cr><![CDATA[
        &[before 2]a<<ā<<<Ā<<á<<<Á<<ǎ<<<Ǎ<<à<<<À
        &[before 2]e<<ē<<<Ē<<é<<<É<<ě<<<Ě<<è<<<È
        &e<<ê̄<<<Ê̄<<ế<<<Ế<<ê̌<<<Ê̌<<ề<<<Ề
        &[before 2]i<<ī<<<Ī<<í<<<Í<<ǐ<<<Ǐ<<ì<<<Ì
        &[before 2]m<<m̄<<<M̄<<ḿ<<<Ḿ<<m̌<<<M̌<<m̀<<<M̀
        &[before 2]n<<n̄<<<N̄<<ń<<<Ń<<ň<<<Ň<<ǹ<<<Ǹ
        &[before 2]o<<ō<<<Ō<<ó<<<Ó<<ǒ<<<Ǒ<<ò<<<Ò
        &[before 2]u<<ū<<<Ū<<ú<<<Ú<<ǔ<<<Ǔ<<ù<<<Ù
        &U<<ǖ<<<Ǖ<<ǘ<<<Ǘ<<ǚ<<<Ǚ<<ǜ<<<Ǜ<<ü<<<Ü
   ]]></cr>
</collation>

笔画排序

定义每个汉字的总笔画数kTotalStrokes

所有汉字排序集位于cldr/zh.xml