CN102662926B - 字库的存储与访问方法 - Google Patents
字库的存储与访问方法 Download PDFInfo
- Publication number
- CN102662926B CN102662926B CN201210088042.6A CN201210088042A CN102662926B CN 102662926 B CN102662926 B CN 102662926B CN 201210088042 A CN201210088042 A CN 201210088042A CN 102662926 B CN102662926 B CN 102662926B
- Authority
- CN
- China
- Prior art keywords
- word
- character
- character library
- font
- font data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明提供一种字库的存储方法,所述字库包括字形描述符和字形描述数据,所述方法包括为不同的字形描述数据分配不同的字形描述符,使其一一对应以及将所述字形描述符映射到所述文字的编码。该方法以字形描述数据为关键字,为不同字形分配不同的编码,并且所述字库可包括多种语言文字。采用这种方法来存储字库即可以节省大量的存储空间,又可以使用户根据需求来动态调整和构建字库。另外,该方法还可以用于存储同一种文字中的各种异体字或错体字。
Description
技术领域
本发明涉及文字处理领域,尤其涉及字库的存储和访问方法。
背景技术
从计算机诞生以来,文字处理就是计算机所要完成的主要任务之一,文字显示则是文字处理的一个重要方面。计算机在做文字显示的过程中,需要根据用户的某种输入方法转换得到的文字编码从存储字形数据的字库中提取相应文字的字形数据,进而由计算机根据这些字形数据在显示终端或输出设备上描述或输出文字的字型,从而实现文字的显示或输出。从上面的说明可以看出,文字显示或输出主要涉及两方面的内容,一是文字编码,二是字形描述数据。文字编码是沟通用户与计算机之间的一个桥梁,计算机只有通过文字编码才能“读懂”用户所输入的信息,处理用户所需要的文字。在现实生活中,世界各地有成百种不同类型的语言文字,应用到计算机上的常用语言文字也大约有三十多种。针对不同种类文字的文字编码不具有统一性的问题,Unicode协会提出了名称为Unicode的字符编码标准。该字符编码标准为世界上各种语言文字中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本交换、处理的要求。Unicode后来又与国际标准化组织所提出的ISO 10646相合并,基本解决了多语言文字编码统一性的问题。针对字形数据,目前常见实现方式是在计算机中保存多个不同语言文字的字库。字库就是对文字及其它字符的数字化,存储了每个文字字形的集合,定义了文字输出的形状等。如果在一个文档中调用多种文字字符,需要根据所用的语言种类从相应种类文字的字库中调用字符。如果所在计算机上没有安装相应种类文字的字库,则有可能无法显示该文字或者可能会显示乱码。
而且随着互联网和嵌入式技术的发展,人们可以随时随地利用身边的各种计算设备(如手机、掌上电脑,智能家电等)来访问网络上的各种资源,或者使用多种语言文字与网络上的其他用户进行交互,或者这些设备之间进行交互。在不同的语言环境及其所使用的不同设备环境中进行文字处理面临着新的挑战,这是由于各种移动设备以及嵌入式设备的资源有限,并且使用各种不同的操作系统,管理和维护用户所使用的所有终端设备上的所有字库文件,并确保无缝地跨平台的信息交互是一项非常艰巨的任务。例如,在某个终端上如果没有所需文字所对应的字库,则无法正常显示该文字。此外,在文字处理时,使用多个独立的字库文件既占用了大量的存储空间,又增加了字库的检索时间,这对于资源有限的嵌入式应用平台有很多不利的影响。
鉴于Unicode标准已经对各种文字的文字编码做了统一分配,因此本领域技术人员想到将Unicode标准中的文字编码与用于描述文字形状的字形数据(字形数据中描述文字形状的方式有多种,如点阵式、向量式、曲线式等)相结合,从而得到一个包含多语言所有文字的所有字符的字库来适应新的应用环境中。这种字库也可被称为多语言字库,例如美国微软公司委托蒙那公司制作的Monotype Arial。该多语言字库为每个Unicode编码安排了对应的字形数据。
但其中也存在一些问题,比如Unicode2.0中对常用汉字字符集定义时,没有为某些汉字字形在不同国家或地区使用的具有微小差异的同一文字分配不同的编码,例如,如图1所示,汉字“牙”在Unicode标准中用一个编码“7259”表示,但实际上,中文简体、中文繁体、日文、韩文中的“牙”字的字形各不相同。因此,在现有的多语言字库中,一个Unicode码只对应一种字形数据,对于前述“牙”字这种情况就只能从四种字形的字形数据中缺省选择一种放入所述多语言字库中。但在中文文本中出现日文的“牙”字显然不能满足用户的要求。而如果在多语言字库中,允许一个Unicode码对应一种以上的字形数据,又会遇到容易混淆的问题。例如,当用户输入7259编码后,如果没有其他的辅助信息,计算机无法知道是要调用中文简体、中文繁体、日文、韩文中的哪一个“牙”字的字形数据。另外,由于已有的不同文字的字形数据通常由不同的厂商提供,因此在风格、字体、大小、字间距等与字型有关的信息上存在较大的差异。当在同一文本中出现不同种类文字的字符时,这种差异会影响文本的总体美观。而且,不同厂商所提供的字形数据的坐标通常也不相同,这使得不同种类文字字符之间存在无法对齐的现象,也影响了文本的美观。
发明内容
本发明的目的在于克服上述现有技术的缺陷,提供一种字库的存储方法,不仅可以节省字库本身所占的存储空间,而且可以灵活地对字库进行存储和访问。
本发明的目的是通过以下技术方案实现的:
一方面,本发明提供了一种字库的存储方法,所述字库包括字形描述符和字形描述数据,所述方法包括:
步骤1)为不同的字形描述数据分配不同的字形描述符,使其一一对应;
步骤2)将所述字形描述符映射到其对应的文字编码。
上述的字库存储方法中,所述字库可以包括多种语言文字的字形描述数据。
上述的字库存储方法中,所述字库可以包括对同一种文字的各种异体字的字形描述数据。
上述的字库存储方法中,所述语言文字可以包括中文简体、中文繁体、日文、韩文。
上述的字库存储方法中,所述步骤2)可以将所述字形描述符映射到Unicode码。
上述的字库存储方法中,所述步骤2)可以将所述字形描述符映射到各种文字对应的编码。
又一方面,本发明还提供了一种用于对以上述的字库存储方法所存储的字库进行访问的方法,所述访问方法主要包括:
将文字的当前字符编码转换为该文字所对应的字形描述符;
根据所述字形描述符从字库中提取出该文字所对应的字形数据。
在又一个实施例中,也可以首先将文字的当前字符编码转换为该文字所对应的Unicode编码;接着根据该文字的Unicode编码与所述字形描述符的映射,得到该文字对应的字形描述符;然后根据所述字形描述符从字库中提取出该文字所对应的字形描述数据。
又一方面,本发明还提供了一种用于多语言字库的输入方法,所述字库是以上述的字库存储方法进行存储的,所述输入方法包括:
将用户输入转换为文字标识,所述文字标识包括文字的编码和语言标志,所述语言标志标识文字所属的语言种类;
根据语言标志找到该文字编码与所述的字形描述符的映射;
根据所述字形描述符找到该文字编码所对应的字形描述数据;
返回所述字形描述数据。
在上述的输入方法中,所述文字的编码可以为Unicode码。
与现有技术相比,本发明的优点在于:
通过为不同的字形描述数据分配不同的字形描述符的方式来对字库进行存储,不仅节省了字库本身的所占用的存储空间,而且还解决了由于没有为某些字形具有微小差异的同一文字分配不同的编码所造成的影响文本美观的问题。此外,还可以根据用户或实际需求来动态地生成具有不同大小且包括不同语言的多种字库。
附图说明
以下,结合附图来详细说明本发明的实施例,其中:
图1为汉字在Unicode中的编码示意图;
图2为根据本发明一个实施例的字库的存储方式的示意图;
图3为根据本发明一个实施例的访问字库的索引表示意图;
图4为根据本发明又一个实施例的访问字库的索引表示意图;
图5为根据本发明又一个实施例的字库的存储方式的示意图;
图6为根据本发明又一个实施例的访问字库的索引表示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了更好地理解本发明,在介绍本发明的实施例之前,先介绍字符(Character)和字形(Glyph)的差异。字符与字形是不同的概念。字符代表文字的本义或内涵(即字义),而字形描述的是文字的形状。例如对于“牙”字,在不同的地区和不同的文字中字形和字音可能不同,但其含义是一样的,在Unicode中的编码是唯一的。又例如,“日”字,在汉字发展的不同历史时期,其字形是不同的(例如,“鈤,,曰,⊙,θ”),但其字义是不变的。现有的文字编码方法都是对字符进行编码,正如在GB中文字编码标准中所述的“本标准仅涉及字符和编码的对应关系.....”。也就是说该标准仅涉及字符和编码的对应关系,并不对该编码所对应的字符的字形进行规定。此字符的规范字体是由政府主管单位(如国家语委)发布的另一种规范,但这种规范仅针对字符的“正字”(即正确标准的字形),而不对字符的其他异体字及错体字进行规定。例如,仅规定了“汇”(正字),而没有规定“汇”的异体字。
在本发明的一个实施例中提供了一种字库的存储方法,该方法为不同的字形描述数据分配不同的字形描述符,使其一一对应;将所述字形描述符映射到现有的各种文字编码。下面以包括多种语言文字的字库的存储为例,来对该方法进行说明。
考虑到汉字编码在Unicode中所占的比重(约70%),在本发明下面的实施例中,以中文简体、中文繁体、日文、韩文(China、Japan、Korea统称为CJK)中的汉字为例,来对多文字字库的存储方式进行说明。本领域普通技术人员应理解,本发明实施例中所提供的方法还可以适用于其他多种语言文字。
一般而言,汉字在CJK中分为以下三种情况:一是同一个汉字在不同的地区中有相同的字形,如图1中所提到的“王”字;二是同一个汉字在不同的地区中有不同的字形,如图1中所提到的“牙”字;三是一个汉字只在一种或几种地区文字中存在,并且在其它地区文字中不存在,如图1中所示的中文简、中文繁和日文中的“广”字。
现有的多文字字库(也可以称为多语言字库)中,按照Unicode编码+字形数据的存储方式,某一种文字的字符会集中在某一段内。在将汉字的字形数据存储到字库中时,对于同一汉字在不同文字中有相同字形的情形,会出现同一个字多次重复存储;对于同一个汉字在不同的文字中有不同的字形的情形,由于Unicode没有为某些汉字字形在不同地区使用的具有微小差异的同一文字分配不同的编码,如图1所示,“牙”字在Unicode标准中只用一个编码“7259”表示,那么可能在中文文本中会出现日文的“牙”字,这显然难以满足用户需求;对于一个汉字只在一种或几种文字中存在,并且在其它文字中不存在的情形,就需要将其它文字中存在且在本文字中不存在的字符以重复或空格的方式存储,浪费了存储空间(如图1中繁体的“”字所对应的简体字部分不存在,在字库存储中文简体的字形数据时,会将该编码以重复或空格等方式存储)。
根据本发明的一个实施例,提出了一种多文字字库的存储方法,其以字形为关键字来存储字库,使字形和编码之间可以一一对应。以汉字为例,对于满足第一种情况的汉字(即:同一个汉字在不同地区使用的是相同的字形),对该汉字的字形分配一个唯一的编码,也就是用一个编码对不同文字中的同一个汉字统一加以表示,且在字库中将该汉字的编码和字形数据只存储一次。对于满足第二种情况的汉字(即:同一个汉字在不同地区使用的是不同的字形),用不同的编码表示同一个汉字的不同字形,并在字库中对这些编码和字形数据分别加以存储。对于满足第三种情况的汉字(即:一个汉字只在一种或几种地区文字中存在,并且在其它地区文字中不存在),由于针对字形来进行编码,避免为了对应编码而对某文字中不存在的汉字使用重复或空格的方式进行存储的情形。这样可以减少不必要的存储空间。以实际应用为例,据统计,现实中常用的汉字(仅以Unicode 2.0为例)接近两万一千个,如果用中文简体、中文繁体、日文、韩文的方式分别对这些汉字加以描述存储,那么相应的字库需要存储八万多个字。如果采用上述方式对上文提及的满足第三种情况的汉字进行存储,那么相应的字库只需要存储五万多个字。如果在此基础上,再对重复的字形数据只存储一次,那么相应的字库只需要存储三万三千多个。显然,采用上述存储方法能够极大地节省存储空间。
图2所示的根据本发明实施例的字库的存储结构的示意图。该结构主要下面两项:一为用于标识字符的字形数据的字形标识符GID(GlyphIdentifier),二是字符的字形数据。其中,GID是可以自定义的。在本实施例中,用于标识字符的编码不再是Unicode编码,而是根据字形自定义的GID。例如,为“牙”字这类在不同文字中的字形存在差异的字符分别定义不同的GID编码,使得字形与其GID编码之间具有唯一对应关系。如图2所示,“牙”字的四种字形分别具有四个不同的GID编码:2001、2002、2003、2004。同时在不同文字中具有相同字形的字符用同一GID编码表示,如图2所示,用“1101”表示“王”字的字形数据。需要说明的是,以上说明中所列举的GID编码都只用于举例说明之用,GID编码的位数、数值都可以根据实际情况由相关技术人员自行设定。例如在一些实施例中,GID可以是字形数据在字库文件中实际的存储地址。在图2所示的数据结构中字符的字形数据也可以有多种实现方式,如常见的点阵定义方式、轮廓化定义方式(包括直线方式与曲线方式)、骨架定义方式、中心线定义方式或其他。用户根据实际应用情况选择合适的字形数据表示方式。
在图2所示的字库存储结构中,字形与编码间具有唯一对应关系,并且节省了存储空间,但由于现有的大部分文字输入、显示及跨平台交互中仍然是通过Unicode编码调用相应文字的字符,因此,还需要解决如何由利用现有Unicode编码来访问以上述方式存储的字库的问题。也就是由同一Unicode码来识别不同的GID,进而得到特定的字形数据的问题。为了解决这一问题,除了图2所示的字库存储结构外,根据本发明的一个实施例,还提供了根据Unicode编码调用GID的索引表,也可以称为字形映射表Gmap(Glyph map-table)。索引表可以是一个或者多个,每个索引表主要包括两个表项:Unicode编码和GID项。在本发明的一个实施例中,如图3所示,提供有多个索引表,其中一个索引表对应一种文字。以本说明书中所提到的中文繁体、中文简体、日文、韩文为例,需要有四个索引表:图3(a)中的索引表对应中文简体,图3(b)中的索引表对应中文繁体,图3(c)中的索引表对应日文,图3(d)中的索引表对应韩文。在这些索引表中,至少包括Unicode编码项和GID编码项,从图3的四个图中可以看出Unicode编码与GID编码间存在对应关系,“牙”字在四个索引表中的Unicode编码都是7259,但其GID编码各有不同。在本发明的另一个实施例中,也可以是一个大的索引表,如图4所示,其包括两个表项:Unicode编码和GID编码项,分段存储英文、中文简体和日文等的Unicode编码和GID编码。在本发明的一个实施例中,上述索引表可以和图2所示的数据结构结合在一起作为一个字库文件来存储。在该文件的起始部分为索引表,包括Unicode编码项和GID项,其中GID项可以是指示对应字形数据在字库文件中的存储位置的指针。在本发明的又一个实施例中,索引表和字库文件是分离的。索引表中包括Unicode编码项和GID项,其中GID项可以是由用户自定义的编码。而在字库文件的开始部分建立包括GID和指向对应的字形描述数据的地址的指针的索引,这样可以在更新字库文件所包含的字形数量和字形数据的存储位置时,不需要改变对应的GID。
在本发明的又一个实施例中,索引表和字库文件可以分布在不同的位置。例如,索引表存储于各种终端设备上,而字库文件存储于可通过网络访问的远程服务器上。在又一个实施例中,也可以将包括一个包括多语言的文字的字库文件存储于终端设备上,而对应的各语言的索引表存储于远程服务器上。在用户所使用的终端设备上可以缺省地存放其常用语言所对应的索引表。当用户需要输入或查看使用新的语言文件时,可以通过网络下载该语言所对应的索引表即可。当然,在本发明的其他实施例中,也可以将二者存储在同一计算设备的不同和/或相同的芯片或者部件中。由于用户通常只使用很少的几种语言,而不是使用所有的语言类型,通过上述实施例可以减少对移动终端设备不必要的资源浪费。
另外,根据上文所讨论的多语言字库的存储方法还可以根据用户的需求或实际系统情况动态地根据Gmap动态地创建其对应的字库。例如,在本发明的一个实施例中,如果一篇文档中使用了3种语言,那么在跨平台或多设备间传送或交互该文档时,可以根据这3种语言对应的Gmap动态产生只包含这3种语言的字库,将其与文档一起打包传输,这样就可以防止由于某个设备上没有对应的字库而影响该文档的阅读。在本发明的又一个实施例中,由于移动或嵌入式设备的资源有限,用户可以根据自己所实际使用的语言种类来定制所对应的字库,从而减少终端设备的资源浪费。例如,用户最常用中英文,那么只要为该用户创建包括常用字符集、中文和英文的文字的字库及其对应的Gmap就可以了。
根据本发明的一个实施例,还提供了对以上述方式存储的字库的访问方法。该访问方法包括以下步骤:首先,将文字的当前字符编码转换为该文字所对应的Unicode编码。接着,根据该文字的Unicode编码检索上文所述的字形映射表,例如,图3或图4所示的索引表,得到该文字对应的GID编码。最后,根据GID编码从字库中提取出该文字所对应的字形数据。
例如,在用户通过手机浏览中文网页时,如果该网页中的文字当前所使用的是Big5码,首先根据对应Big5的码表(code page)找到该文字所对应的Unicode编码,所述对应Big5的码表是指Big5与Unicode编码之间的映射;接着根据其对应的Unicode编码从字形映射表Gmap中检索对应于该文字的GID,然后根据GID从字库中提取出相应的字形数据,并将其显示在手机的屏幕上。本领域普通技术人员可以理解,可以针对各种现有的文字编码分别设置包含其与Unicode编码之间映射的码表,例如包括GB和Unicode映射的码表、Big5和Unicode之间映射的码表等等。
类似地,对于本领域的普通技术人员来说,上述字库的访问方法可以用于诸如文字的打印、传输等文字输出。
根据本发明的另一个实施例中,提供一种基于上述的多语言字库进行文字输入的方法。该方法包括下列步骤:通过现有的各种文字输入方法将接收到来自用户输入转换为相应的字符编码后,将该字符编码转换为对应的Unicode编码,然后利用上文所提供的字库访问方法从字库中提取出相应的字形数据。
下面以Windows提供的输入法管理器-输入法编辑器结构(InputMethod Management-Input Method Editor,IMM-IME)为例介绍如何进行多语言字库的文字输入。其中,IMM管理当前系统中的各个IME,并维护IME和应用程序之间的通信;IME将用户输入转换成相应的字符编码。在具有多语言支持的环境中,每个可以接收用户输入的窗口都包含一个输入上下文数据结构,其中记录与IME有关的用户输入信息,IMM通过此数据结构保存和维护与IME有关的数据(例如转换状态、写作串、候选列表内容等),实现与IME和应用程序的数据通信。当用户的键盘输入被转换为键盘消息后,通过IMM将这些消息传递给当前线程所对应的IME;然后IME根据该消息以及输入上下文中记录的数据,将用户的输入动作转换为结果串,以字符消息的形式返回给IMM,将其放入当前窗口的消息队列中。在本发明的一个实施例中,可以由IME将文字的当前字符编码转换为该文字所对应的Unicode编码,在其所返回的结果串中包括对应用户输入的字符的Unicode编码。然后根据上文所述的字库的访问方法来提取相应的字形数据。在本发明的另一个实施例中,可以在IME向当前窗口返回结果串之前,将结果串中的字符编码替换为对应的GID编码。
在本发明的一个实施例中,在多语言环境中,针对每个IME(例如,37种语言独立的IME),可以在其将用户的输入转换为对应的文字的编码时加入对应的语言标志(Language Tab),这样在IME所返回的结果中包括“Unicode码”和“Ltab”。该语言标志Ltab标识用户当前使用的语言环境,例如CN标识中文简体,TW标识中文繁体,JP标识日文等,其可以用于指示对哪个Gmap进行检索。例如当用户采用中文简体输入法输入“牙”时,“牙”的Unicode编码“7259”,则IME返回“CN(7259)”,根据“CN”标志来选择图3(a)所示的索引表来进行检索,由索引表得到GID码2001,再根据GID码2001可在图2所示的字库中得到中文简体的“牙”字的字形数据,从而在显示装置上输出中文简体中的“牙”字。在同一篇文档中,如果用户在工作过程中需要输入日文,当其改用日文输入法后,IME返回“JP(7259)”,根据“JP”来检索图3(c)所示的索引表得到GID码2003,再根据GID码2003可在图2所示的字库中得到日文的“牙”字的字形数据,从而在显示装置上输出日文中的“牙”字。对于转换成中文繁体或韩文的输入法,有关的操作过程与前面的说明相似。当然,如果用户输入的是“王”字的Unicode编码,则无论是在哪个索引表中,最终调用的GID编码都是“1101”,这也与“王”字在四种文字中的字形都一致的情况相符。在本发明的又一个实施例中,针对包含多种语言的文档,在保存其信息时,可以将每个文字表示为“Ltab(Unicod码)”或者“Ltab(GID)”,例如JP(GID)、CN(GID)等,这样在不同的平台上显示该文档时,可以根据每个文件对应的语言标志检索相应的Gmap以便获得对应的字形描述数据。在又一个实施例中,针对IMM-IME架构,在用户的终端设备上可以只有其常用语言的IME,而其他语言的IME可以放在网络中的其他计算机上,这样当用户要输入某种语言时,可以从网络上临时下载该语言对应的IME,将其交由本地的IMM来管理,这样即方便了用户使用,又防止了不必要的资源消耗。应理解上述文字的表示方式仅其示意的作用,实际上用户切换当前语言环境之前,有IME返回的字符串中可以仅包含一个标识用户当前语言环境的语言标志即可,在该语言标志后可以跟随多个对应于用户输入的文字的Unicode码,例如CN(7259,7E12,......)。而当用户改变语言环境时,相应地返回标识新的语言环境的语言标志。
值得指出的是,由于Unicode码应用范围广,且可以实现跨平台的交互,所以在本实施例中,以Unicode编码为例,对所述索引表的内容做了详细说明。但本领域技术人员应当了解,在一些实施例中,索引表中的Unicode编码项也可以替换成其它的编码。例如,在表示中文简体的索引表中,可以用GB码代替Unicode编码,在中文繁体的索引表中,可以用Big5码代替Unicode编码,在日文的索引表中,可以用JIS码代替Unicode编码,在韩文的索引表中,则可以用KIX码代替Unicode编码。这样,在文字输入和输出时可以只需检索对应的索引表就可以了,而不必执行转换为Unicode编码的步骤。
例如,当用户打开文档、浏览信息时,可以根据用户设定的条件或者在文档或网页上的字符集信息来显示文字。此处所述的条件或字符集信息不仅仅包括字符的编码,还包括用户所使用的文字环境。所述文字环境通俗的说,就是指用户当前希望使用何种文字。文字环境的设定可以由用户显式地实现,例如电视节目制作商在字幕数据的数据包包头中设置当前字幕的文字环境的参数,也可由用户隐式实现,如前所述的改变文字输入法的同时就可实现文字环境的设定。或者是如前述的机顶盒接收数字电视节目中自带的字幕的字符编码等。所述字符的编码可以有多种编码方式,如前文所述的Unicode编码、GB码、Big5码、JIS码等,只要与所述的文字环境相适应,都可应用于本发明。
可根据上述用户设定的条件或字符集信息,来调用对应的索引表,然后在该索引表中,查找与用户所输入的字符的编码相对应的项,从该项中提取对应的GID码。在得到GID码后,就可以从字库中提取出对应的字形数据,将这一字形数据提取出来后,可以实现后续的诸如显示的各种操作。
作为公知常识,汉字包括多种字体,如宋体、楷体、隶书、新魏等,同一个汉字在不同字体下的字形会存在差异。对于每一种字体,都可以参照前述说明生成相应的字库。
在上述实施例中,以CJK为例,对本发明中所涉及的多文字字库做了说明,本领域技术人员很容易理解,在上述多文字字库的基础上可做进一步的扩展,将包括英文、法文、德文、阿拉伯文、西班牙文、葡萄牙文、俄文在内的多种文字添加到字库中,从而形成多语言字库。这一多语言字库对不同文字中具有相同字形的字符的字形数据只存储一次,而对不同文字中具有不同字形的同一字符(哪怕这些字符的字形只有微小的差别)的字形数据分别加以存储。与简单地将各个文字的所有字符的字形数据堆积在一起所形成的多语言字库相比,这一多语言字库的大小有明显的减小。
根据上述实施例中所形成的多语言字库具有广泛的应用范围。例如在现有的数字电视节目中,电视节目下方的字幕通常是由电视节目制作商将字幕中的字符制成图片后,将字幕的数据流连同电视节目的数据流一并发送到用户端的机顶盒中,再由机顶盒将这些数据解码播出。在日益多语言化的今天,为了满足不同地区观众的需要,电视节目制作商应当为电视节目制作多种文字的字幕,以供用户自行选择。但以图片方式表示的多种文字的字幕数据的数据量很大,如果将这些字幕数据与电视节目的数据流一并发送,可能在传输带宽有限的前提下,影响电视节目本身的传输质量,不利于电视节目清晰、流畅地播放。而且由于电视机分辨率的不同,采用图片的方式不适合根据分辨率进行缩放,所以存在显示缺陷。如果在用户端的机顶盒中添加一个包含有本发明的多语言字库的模块。那么,电视节目制作商只要在电视节目的数据流中传输字符的编码,根据这些编码信息机顶盒就可以从多语言字库中调用相应的字符,从而显示输出。由于字符编码与以图片方式表示的字符相比,在数据量上有很大程度的降低,因此不会对带宽产生太大的负荷,对电视节目自身的传输也不会造成太大的影响,而且所产生的字符显示效果会有很大的提高。而在前面的说明中已经提到,采用本发明实施例提供的存储方法的多语言字库的体积很小,因此对于机顶盒等存储资源有限的装置也不会造成太大的负担。
上文虽然以包括多种语言文字的字库为例来说明本发明提供的字库的存储和访问方法,但应指出,上述方法还可以用于包括同一种语言文字中的异体(形)字的字库的存储和访问。例如,对于中文中的异体、简体、繁体等等;印度文中的异体字、阿拉伯文中的变体、英文中的连接字等等。现以中文为例进行说明,所述异体字是字音字义相同而字形不同的一组字例如,“日(鈤,,曰,⊙,θ)”。在现有的中文编码中,采用的是字符和编码一一对应的关系,因此无法涵盖例如“日”的异体字的情形,只能择其一进行编码,因为所有这些异体字其字义是相同的,如果是字符和编码一一对应,那么就会出现多对一的情形。因此,在需要使用异体字的情况下,目前还无法输入异体字或错体字,通常的解决方法通常是采用图片的方式,对每个异体字或错体字分别制作相应的图片,这在出版、教学和研究中的异体字的输入和使用带来了很多不便。而如果采用上述实施例所介绍的方法,就可以很方便地存储和管理同一种文字中的异体字。
这是因为在上文所介绍的方法中,为不同的字形分别分配不同的标识符,这样就可以在一个字库中包含同一文字的所有异体字,例如,如图5所示,包含了王的所有异体字“王(迋,玊,仼,囯)”。只需要改变上文参考图3或4所述的索引表就可以完成对异体字字库的访问以及异体字的输入。以图6所示的异体字索引表为例,例如用户希望能显示“王”的异体字,先将用户输入转化为“王”的Unicode编码“738B”,然后,检索图6所示的索引表,可到“王”的所有GID,然后根据这些GID从字库中提取相应的字形描述数据,显示给用户以供其选择。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (8)
1.一种字库的存储方法,所述字库包括字形标识符和字形数据,所述字库包括多种语言文字的字形数据,所述方法包括:
步骤1)为不同的字形数据分配不同的字形标识符,使其一一对应;
步骤2)将所述字形标识符映射到各种文字对应的编码。
2.根据权利要求1所述的存储方法,其中所述语言文字包括中文简体、中文繁体、日文、韩文。
3.一种字库的存储方法,所述字库包括字形标识符和字形数据,所述字库包括同一文字的各种异体字的字形数据,所述方法包括:
步骤1)为不同的字形数据分配不同的字形标识符,使其一一对应;
步骤2)将所述字形标识符映射到其对应的文字编码。
4.一种字库的存储方法,所述字库包括字形标识符和字形数据,所述字库包括多种语言文字的字形数据,所述方法包括:
步骤1)为不同的字形数据分配不同的字形标识符,使其一一对应;
步骤2)将所述字形标识符映射到其对应的文字标识,所述文字标识包括文字的Unicode码和语言标志,所述语言标志标识文字所属的语言种类。
5.一种用于访问字库的方法,所述字库根据权利要求1所述的存储方法进行存储,所述方法包括:
将文字的当前字符编码转换为该文字所对应的字形标识符;
根据所述字形标识符从字库中提取出该文字所对应的字形数据。
6.一种用于访问字库的方法,所述字库根据权利要求4所述的存储方法进行存储,所述方法包括:
将文字的当前字符编码转换为该文字所对应的文字标识,所述文字标识包括文字的Unicode编码和语言标志,所述语言标志标识文字所属的语言种类;
根据该文字的文字标识与所述字形标识符的映射,得到该文字对应的字形标识符;
根据所述字形标识符从字库中提取出该文字所对应的字形数据。
7.一种用于多语言字库的输入方法,所述字库根据权利要求1所述的存储方法进行存储,所述输入方法包括:
将用户输入转换为文字标识,所述文字标识包括文字的编码和语言标志,所述语言标志标识文字所属的语言种类;
根据语言标志找到该文字编码与所述的字形标识符的映射;
根据所述字形标识符找到该文字编码所对应的字形数据;
返回所述字形数据。
8.根据权利要求7所述的输入方法,其中所述文字的编码为Unicode码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210088042.6A CN102662926B (zh) | 2012-03-29 | 2012-03-29 | 字库的存储与访问方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210088042.6A CN102662926B (zh) | 2012-03-29 | 2012-03-29 | 字库的存储与访问方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102662926A CN102662926A (zh) | 2012-09-12 |
CN102662926B true CN102662926B (zh) | 2015-09-30 |
Family
ID=46772421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210088042.6A Active CN102662926B (zh) | 2012-03-29 | 2012-03-29 | 字库的存储与访问方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102662926B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424192A (zh) * | 2013-08-20 | 2015-03-18 | 北大方正集团有限公司 | 形成多字型字库、通过该字库显示不同字型的方法及装置 |
CN105405227A (zh) * | 2014-08-04 | 2016-03-16 | 罗伯特·博世有限公司 | 用于报警器的多语言显示模块及显示方法 |
CN104598560A (zh) * | 2015-01-06 | 2015-05-06 | 绍兴文理学院 | 一种嵌入式系统多字体文字的显示方法和显示系统 |
CN104715068B (zh) * | 2015-03-31 | 2017-04-12 | 北京奇元科技有限公司 | 一种生成文档索引的方法和装置以及一种搜索方法和装置 |
CN107241100B (zh) * | 2016-03-29 | 2019-11-08 | 北大方正集团有限公司 | 字库部件压缩方法及装置 |
CN106021204A (zh) * | 2016-06-12 | 2016-10-12 | 朱信 | 多重复字字库的制作与使用 |
CN108108337A (zh) * | 2016-11-25 | 2018-06-01 | 北大方正集团有限公司 | 简繁互转方法及装置 |
CN109871667B (zh) * | 2019-02-18 | 2020-11-10 | 北京创鑫旅程网络技术有限公司 | 数据内容保护方法、装置、服务器及计算机可读介质 |
CN111914513A (zh) * | 2019-05-08 | 2020-11-10 | 亿阳安全技术有限公司 | 一种rdp窗口标题文字识别的方法及装置 |
CN115495694B (zh) * | 2022-11-14 | 2023-03-24 | 北京国隐科技有限公司 | 一种网页数据的处理方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996160A (zh) * | 2009-08-10 | 2011-03-30 | 北大方正集团有限公司 | 一种字体数据的处理方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7064757B1 (en) * | 1999-05-07 | 2006-06-20 | Apple Computer, Inc. | Automatic synthesis of font tables for character layout |
US6771267B1 (en) * | 2000-03-22 | 2004-08-03 | Adobe Systems Incorporated | Merging digital fonts |
CN1996279A (zh) * | 2006-12-30 | 2007-07-11 | 北京方正国际软件系统有限公司 | 一种四字节的逻辑字体编码方法 |
CN101551798A (zh) * | 2008-03-31 | 2009-10-07 | 任鹏 | 翻译输入法及字库 |
CN101458682A (zh) * | 2008-12-18 | 2009-06-17 | 杭州方捷信息技术有限公司 | 一种基于中文汉字和日文汉字的映射方法及其应用 |
-
2012
- 2012-03-29 CN CN201210088042.6A patent/CN102662926B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996160A (zh) * | 2009-08-10 | 2011-03-30 | 北大方正集团有限公司 | 一种字体数据的处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102662926A (zh) | 2012-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102662926B (zh) | 字库的存储与访问方法 | |
CN101694603B (zh) | 基于Unicode的跨平台蒙古文显示及智能输入方法 | |
US20060080082A1 (en) | System and method for product migration in multiple languages | |
CN101699426A (zh) | 文档格式转化系统及方法 | |
US20140013211A1 (en) | Content providing apparatus compatible with various terminal devices | |
CN109933751B (zh) | 图文绘制方法、装置、计算机可读存储介质和计算机设备 | |
CN101963954A (zh) | 一种文字显示的方法及装置 | |
CN107562480B (zh) | 一种pos机多国语言的实现方法及其系统 | |
CN101692254B (zh) | 一种多Unicode语言字码显示方法和装置 | |
CN106873971B (zh) | 一种flash应用的多语言展示方法和系统 | |
CN108961361B (zh) | 生成特效文字图像的方法及系统、计算机设备 | |
CN113641433A (zh) | 基于i18n技术的前端国际化多语言文件的多语言页面转换方法和单元 | |
CN102082934B (zh) | 字幕对象的更新方法及装置 | |
CN101551798A (zh) | 翻译输入法及字库 | |
CN101382931A (zh) | 一种用于电子、信息及通信系统的交换内码及其应用 | |
CN111143749A (zh) | 一种网页展示方法、装置、设备及存储介质 | |
CN102768655A (zh) | 基于java的蒙古文显示方法 | |
CN102193907A (zh) | 一种基于b/s结构的文稿对比方法及系统 | |
CN101944081A (zh) | 一种古琴减字谱的计算机生成、编辑方法与系统 | |
TW561360B (en) | Method and system for case conversion | |
CN104021026A (zh) | 一种基于Android系统的语言添加方法 | |
CN102104743B (zh) | 多语种混排字幕的编辑方法及装置 | |
CN102104742B (zh) | 多语种字幕的混合编排方法及装置 | |
CN102082933B (zh) | 一种字幕制作系统 | |
CN102099806A (zh) | 信息输出装置、信息输出方法和记录介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |