对于嵌入式系统项目,包含东南亚字符集的绝对最低要求是什么?


14

我为一家已经开始将嵌入式计算机系统集成到我们生产的产品中的公司工作。我们拥有种类繁多的产品,它们遍布全球。此外,我们还设计了一些集成板,可以根据已刷新到系统的固件来满足多种目的。这样,我们不必为各种产品重新设计计算机硬件-我们要做的就是重写固件层来满足特定产品的需求。

由于这些硬件限制,更改我们的硬件需要采取一些行动,但是编写新软件要简单得多。

我们的产品之一有一个我们以前没有实现过的新要求,那就是需要用户输入文本。

当前,我们已经能够在资源中存储国际文本,并且只有必要的字体字符才被编译为位图图像。这意味着我们已经能够在最小的空间中存储像中文和日语文本这样的高表意语言,因为我们只使用了整个语言集中很小的一部分。

由于此新产品将要求我们的用户输入文本,因此我们将必须实现广泛的字符集。作为主要的PC开发人员,我对ASCII,Unicode,UTF-8等非常熟悉,但是,由于我们板上的FRAM数量有限,因此无法实现所有这些语言的完整字符集存储字体数据。

我的管理层希望能够使用最少的字符集来用于高度表意的语言。我相信日语(平假名?)也有语音字母。汉语,韩语,越南语等语言也有相似的语音字母吗?我很确定该问题的答案是“绝对,不是”,但这是一个值得询问的问题。

管理层提出了“软”要求,即我们只能使用大约8,000个字符的有限字符集来覆盖所有常用的主要语言。如果这不可能,我们需要根据有限的硬件资源寻找某种形式的替代方法来满足我们的需求。

我确信这个问题以前必须已经解决。是否有人需要在这样的约束下工作,同时又需要广泛的字体和字符编码系统的经验?如果是这样,您可以提供哪些智慧?


韩国和日本都不是东南亚的一部分。它们属于E Asia。当然,如果您指的是S,SE和E Asia,请写下。
lalala

Answers:


25

这是一个很好的问题。

一次处理一种语言的答案;

越南文

越南语不再使用表意字符,但其拉丁语设置非常广泛:请看示例以查看其使用了多少变音符号:

TiếngViệt,hayViệtngữ,làngônngữcủangườiViệt(ngườiKinh)vàlàngônngchínhthứctạiViệtNam。5%ylàtiếngmẹcủakhoảng85%dâncưViệtNam,cùngvớigầnbatriệungườiViệthảingoại,màphầnlớnlàngườiMỹgệcViệt。越南Vi.tệViệtcònlàngônngữthủhaicủacácdântộcthiusốtạiNam。

原因是,每个越南音节除了具有一个非标准辅音字形和六个非标准元音外,还具有六个影响音位的音标之一。

Unicode在元音上组成音调标记;如果你有能力撰写字形,你只需要13个多字形越南,但如果没有,你需要额外的1个+辅音元音12 * 6个+调6个新的元音音色的= 79个额外字形,在downcase和大写。

韩语

韩语是个坏消息。韩文是通过称为Hangul的字母表编写的,该字母表在技​​术上仅是68个字母(称为jamo)的字母表,实际上是使用由jamo构成的音节大小的块来编写的。

韩国文字的外观示例:

1443年1月1日,在1443年。이후한문을고수하는사대부들에게는경시되기도하였으나,조선왕실과일부양반층과서민층을중심으로이어지다가1894년갑오개혁에서한국의공식적인나라글자가되었고,1910년대에이르러한글학자인주시경이 '한글' 이라는 이름을사용하였다。

Unicode具有11,172个完整的块字符-但是,如果您愿意自己编写逻辑代码以构成最终的“块”,则可以大大节省字符集。

基本上,所有音节都可以分为两类-辅音+元音和辅音+元音+最终音,其中final可以是元音,辅音或复合音。CV音节的左侧是C,右侧是V。CVF辅音由CV块在顶部(从左到右),而final在底部。

因此,基本上,您需要:

  • 19种缩写,有两种形式
  • 21种中间件,两种形式
  • 28场决赛

总共108个符号。(我不太确定朝鲜语中是否有“连字”,因此有时构造的块看起来与组件的组合不同,但这是我们目前所能获得的最好的)。

日本

您已经正确注意到,日语有一个语音字母-但实际上,不仅是一个字母,而且是两个字母!平假名和片假名是音节,都具有48个相同的音节,但在不同的上下文中使用(片假名用于外来词,平假名用于语法)。

可悲的是(出于我们的目的),日语几乎不可能仅使用这两个字母来完全书写。汉字汉字在任何情况下都是必不可少的,因为在这种情况下它们是众所周知的。

强制性写作示例:

现在一般には平仮名と片仮名のことを指す。表音文字の一种であり,基本的に1字が1音节を汉音节文字に分类される。汉字に対して和字(わじ)とも言う。ただし和字は和制汉字を意味する事もある。

除汉字外,您还需要103个字形来映射两个汉语中不存在的语音字母+ 7个常见汉字。

CKJ标点

不是这方面的专家,但是中国人和日本人都使用古典的东亚标点符号。Unicode有64个专用于CJK标点符号的符号。

中文

因此,我们的“预算”中还剩下7631个字符。足以覆盖汉字吗?

汉字为上古时代的华夏族人所发明创造制并作改进,目前逐步历史可追溯至约公元前1300年商朝的甲骨文,籀文,金文。再到秦朝的小篆,发展至汉朝隶属变,汉字是连续连续时间时间的主要文字,也是上古时期各大文字体系中唯一传承至今的文字,期间东亚诸国都有一定程度地自行创制汉字。

由于存在超过100,000个字符,因此基本上不可能完全覆盖汉字字符集,而活跃使用的子集要小得多。据说2000-3000个字符足以满足一般读写能力(HSK,类似于普通话的TOEFL考试,要求具备2800个字符的最高水平知识,HSK高级),而4000-5000个字符对于受过教育的人就足够了。

请记住,有简体和繁体字符(前者在中国使用,前者在台湾-台湾使用),它们在许多字符上有所不同,我想说剩下的7600个符号就足以覆盖大多数的用例。两个字符集。

随时问您有什么问题!


5
哇。对于在SO上发布的任何问题,这很可能是我迄今为止收到的最佳答案。我今天早些时候修改了这个问题,因为它悬而未决。我们的要求略有变化,但是我也知道我们产品的性质,并且我预见将来在某个未知的时间会有这种需求。您获得+1并回答投票。我希望我能给你更多的积分。谢谢1,000,000!
RLH

不爱泰语?
lalala
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.