通常在写作中使用的Unicode子集?

时间:2012-07-22 05:37:21

标签: unicode

通常在写作中使用的Unicode字符的子集是什么 - 例如通常在报纸文章中找到的那些?

例如,在英语中,[a-zA-Z0-9]范围内的字符加上一些标点字符对于大多数写作来说就足够了。

但我想支持使用超出ASCII范围的字符的语言,同时排除非打印或装饰字符。

目标是将用户对应用程序的输入限制为以书面语言合法使用的代码点。因为用户输入将被保存和显示,我不想让恶作剧者输入完全由变音符号,Unicode组合字符,Unicode流控制字符等组成的文本。

令人遗憾的是,我对Unicode中的每种语言都不熟悉。有没有人编译过通常用于写作的所有Unicode字符子集的列表?

3 个答案:

答案 0 :(得分:3)

Unicode代码点的官方列表是UnicodeData.txt。这是一个纯文本文件,每个代码点有一行;它很容易机器读取。例如:

0022;QUOTATION MARK;Po;0;ON;;;;;N;;;;;

第三个以分号分隔的字段是“常规类别”的缩写名称。这在chapter 4 of the Unicode Standard中进一步解释,特别是在4.5节中;请参阅第131页的表格(PDF文件的第12页)。例如,“Lu”是大写字母,“L1”是小写字母,Pc,Pd,Ps,是各种标点符号。 (双字母缩写的第一个字母代表更高级别的类别,如字母,数字,标点符号等。)

请注意,未明确列出某些代码点范围。例如,CJK(中国,日本,韩国)表意文字的范围表示为:

4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
9FCC;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;

我认为unicode.org上还有其他文件可以填补这些空白。

我仍然不是100%清楚你正在尝试定义哪个子集,但你可以将它定义为一组特定的通用类别值。

答案 1 :(得分:2)

  

我不想允许恶作剧者输入完全由变音符号,Unicode组合字符组成的文本

变音符号/组合字符将以常规书面语言使用。因此,如果你想停止“恶作剧者”,你将需要一些比允许角色列表更复杂的东西。你必须对你想要允许的每种语言进行某种语言分析。

我建议不要为此烦恼,因为它会很难,反正你也不会成功。让人们写下他们想要的东西。

答案 2 :(得分:1)

尝试WGL4(652个字符),MES-1(335个字符)或MES-2(1062个字符)。在维基百科上找到这些。 如果您想使用此套装,您可能希望从MES-1中排除字符IJijĸĿŀʼn˚-⅛⅜⅝⅞♪。