CN1075563A - 多字节字符串字符的互换代码转换的改进方法 - Google Patents

多字节字符串字符的互换代码转换的改进方法 Download PDF

Info

Publication number
CN1075563A
CN1075563A CN93101028A CN93101028A CN1075563A CN 1075563 A CN1075563 A CN 1075563A CN 93101028 A CN93101028 A CN 93101028A CN 93101028 A CN93101028 A CN 93101028A CN 1075563 A CN1075563 A CN 1075563A
Authority
CN
China
Prior art keywords
code
data
multibyte
byte
exchanges
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.)
Granted
Application number
CN93101028A
Other languages
English (en)
Other versions
CN1043383C (zh
Inventor
格雷格·P·安德鲁斯
长明·王
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN1075563A publication Critical patent/CN1075563A/zh
Application granted granted Critical
Publication of CN1043383C publication Critical patent/CN1043383C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明涉及将第一互换代码的字符的双字节表 示转换为第二互换代码的字符的双字节表示。用双 字节表示向一转换阵列中提供行和列标志。这通过 将所表示的第一和第二字节分别对第一和第二国家 语言检验阵列相比而得到。第一字节与第一国家语 言检验阵列比较而返回第一数值。第二字节与第二 国家语言检验阵列相比较而返回第二数值。然后分 别对第一和第二范围极限评价第一和第二数值,若满 足,则允许该返回的数值作为标志进入一国家双字节 转移表。

Description

本发明涉及两个数据处理系统之间的信息互换,更特别是涉及将一个N-字节稀疏数据组的字符串转换为另一个稀疏数据组中的另外的N-字节字符串。本发明还特别涉及有关双字节字符串的转换方法,即将两个16毕特数据代码中的任何一个转换为另一个16毕特数据代码,例如IBM主机代码和IBM个人机代码之间的转换。
在所指的符号代码变换中,两个数据处理系统之间的信息互换要求有相容性。某些互换代码是共同使用的,因此这些代码之间需要转换的频率增加。例如,一种在IBM    PS/2型55个人计算机中使用的互换代码IBM    PC代码。IBM    PC代码是美国信息交换标准(“ASCII”)的一种扩充,以适用于书写和日本语。另外一种互换代码IBM主机代码是用于由国际商用机器公司所制造的各种中间范围和主机系统。IBM主机代码是一种类似扩充二-十进制交换码(“EBCDIC”)的扩展。
信息交换代码规定了各国语言的字符组。在大多数语言中,所必需的符号或字符的数量较少。例如,英语只使用26个罗马字母,其中每个字母分别有一个大写字母和一个小写字母,共有52个符号。德语仅需增加7个符号,它们是接受发音符号的三个元音(各有大写和小写字母)和小写希腊字母β符号。法语、荷兰语、西班牙语、意大利语、葡萄牙语和斯堪的纳维亚语都相类似地允许增添少量符号,所有这些语言都有一个代码组。所有数都可以由10个数字来表达。还有一些余地用于各种标点符号和其它的特定符号,诸如各种国家货币符号(例如,
Figure 931010284_IMG2
)。这了表达所有这些字符,提供256个字节(每个字节8个毕特)是绰绰有余的。对于每个单字节语言,存在有两组标准互换代码。它们包括美国信息交换标准码(“ASCII”)和扩充二-十进制交换码(“EBCDIC”)。对于单字节语言从一互换代码转换为另一互换代码,需要提供一个单独的256字节转换表。
和大多数语言不同的是汉语、日本语和朝鲜语所包含的字符多于256个。传统写法的汉字超过13000个表意字符。日本语使用了3000至8000个表意字符(汉字字符)和几百个用作数字、平假名和片假名的其它的符号。事实上,日本语、朝鲜语、传统汉字和简化汉字的表意字符组其容量和大小都不同,使得互换代码之间的转换进一步复杂化,为了处理如此之大的字符库,这些语言的互换代码组,对每个字符使用了一个16毕特的双字节,这样就可以表达65536个字符(216)。该双字节组用几种不同的方式来安排。对日本语来说,在各种计算机中,通常使用四种不同的字符组。朝鲜语使用五种,传统汉字使用二种。例如,一个汉字符号“大”,在IBM主机代码中是“455B”,在IBM    PC代码中是“91E5”,在汉字指定编号代码中是“1371”,和在JIS(日本工业标准)代码中是“3471”。这些编号都以十六进制来表示。
在理论上,一种在单字节互换代码之间进行转换的方法,同样也可以在双字节转换中使用。但遗憾的是,在实用中,这样一来将要求提供比处理单字节语言要多得多的存贮器。对于单字节语言,该转换数的长度仅为256个字节。而对一个双字节语言,该转换表的长度将超过128000个字节。
双字节字符组(“DBCS”)转换的传统是使用一系列相关语言与单独的双字节字符相比较以确定其有效性。这些步骤本质上是一系列的范围的比较。一旦该字节的有效性被确认,就用一语言相关方法来将该字符的阵列标志导入双字节的256×256项的转换阵中。这时该阵列标志用来复原来自转移阵列的适当字符。
虽然并不直接相关于在两个互换代码之间的转换,美国专利4,701,746中Ueda等教导了一种方法,该方法适用于简化传统方法所产生的范围比较和标志。Ueda等提出了一种用来将16毕特代码信号转换为13毕特代码信号的代码转换装置,Udea等基本考虑的是一系列多余数据项向连续标记的转换。该专利实际上没有考虑日本语大的字符组。为了双字节字符的表的完整性,需要使用接近128000字节的存贮空间。但是,Ueda等的方法可以处理的最大值大约是8000数据项。因此,Ueda等的技术不能应用于传统或简化汉字,通常也不能应用于多字节系统。和本发明相比,Ueda等提供的误差检验能力是有限的。
因此,本发明的一个目的是提供一种在两个数据处理系统之间进行信息互换的方法。
本发明的另一目的是提供一种从一互换代码到另一互换代码的双字节字符串(“DBCS”)的转换的方法。
本发明的另一目的是提供一种在IBM    PC代码和IBM主机代码之间双字节字符串的转换方法。
本发明还有一个目的是提供一种针对多种国家语言的、由双字节字符串所表示的字符转换的独特方法。
现在说明上述各目的是如何实现的。将第一互换代码的字符的双字节表示转换为从-双字节转换阵列复原的第二互换代码的字符的双字节表示是由从第一代码的字符表示的第一和第二字符所产生的进入该阵列的行和列标志来提供的。为此目的,对第一互换代码的字符的双字节表示的第一字节和第二字节分别提供第一和第二国家语言检验阵列。把第一字节与第一国家语言检验阵列相比较,返回一个第一数值。将第二字节与第二国家语言检验阵列相比较,返回一个第二数值。然后分别相对于第一和第二范围极限评价第一和第二数值,如果满足,则允许该返回值作为标志进入国家双字节转换表。
响应于在第一范围极限内的第一数值的返回和在第二范围极限内的第二数值的返回,第一和第二的数值被作为标志数值进入该双字节转换表。该标志数据这时才用来复原一第二互换代码的字符的双字节表示。否则,响应于来自第二字节的评价步骤的超出范围极限的值的返回,返回一个无效指示。响应于来自第一字节的评价步骤的超出范围极限的值的返回和响应于第二字节的范围极限内一个值的返回,则把第一字节返回的数值与一个无效字符值、一个特殊处理字符值和一个被保留的字符值相比较并返回这些数值中的一个作为该转移过程的输出。
本发明的上述以及附加的目的、特征和优点在下面的详细讨论中将会更明显的。
被认为是本发明的特征的新颖的特征如权利要求书所述。本发明本身以及最佳的使用方式、进一步的目的和其它优点将结合附图参照下面的实施例的详细描述而得到的很好的理解。
图1是一分布数据处理系统的方框图;
图2是本发明响应用于双字节字符的转换方法和流程图;
图3图示说明了一多字节字符串的第二字节的一检验阵列的数据结构;
图4图示说明了一多字节字符串的第二字节的一检验阵列的数据结构;和
图5是一转换阵列的数据结构。
现在参阅附图,特别参照附图1。图1给出了一种可用来实施本发明的方法和系统的分布数据处理系统8的框图。由图可以看出,分布数据处理系统8包含一含最好是IBM公司的PS55型个人计算机所构成的个人计算机系统10和一台由IBM公司的诸如AS/400型个人计算机所构成的中型个人计算机系统12。个人计算机系统10的用户接口包括视频显示装置14和键盘16。在视频显示装置14的框15中显示出了表示“大”的意思的汉字和由ASCII或IBM PC代码表示的16进制双字节字符串“91E5”16
个人计算机系统10被功能性的图示出来。显示装置14由计算机10中的中央处理器18来控制。键盘用来向计算机10提供用户的输入。中央处理器18直接访问存贮装置20和22以及一系统存贮器24。通讯适配器26向通过计算机系统和计算机系统之间的一个网络的一通道连线27提供一接口。
计算机12作为诸如计算机系统10这样的主机装置的服务网络终端进行操作。计算机12包括通过一通讯适配器30来接收通讯线27传送的数据的一个中央处理器28。中央处理器28控制一显示装置32和接收通过键盘34送入的用户的输入。在显示装置32中的框33里显示了“大”的汉字字符以及该汉字字符的IBM主机代码双字节字符串“455B”16。计算机系统12还包括有系统存贮器36和直接访问存贮装置38和40。
如果由字符串所表示的信息没有丢失或完全删节,则在计算机系统10和计算机系统12之间传送的这些字符串必须在两个互换代码之间转换。下面将研究“大”的汉字字符的字符串的转换。在最佳实施例中,这种转换发生在一网络(例如在个人计算系统10)的终端。对于计算机系统10在系统存贮器24中驻留程序是一个用来将IBM    PC代码双字节字符串转换为IBM主机代码双字节字符串的程序43,一个第一字节检验表42、一个第二字节检验表44和一个转换表46,所有这些都用于转换程序。
现在参阅图2,图2示出了本发明的转换方法的流程图。与接收一在源互换代码中以双字节字符串编码的字符时,程序开始执行。一目标代码的识别是根据一目标机器的识别来确定的。在步骤50中,确定了Index1(标志1)和Index2(标志2)两个变量。为了从源互换代码到目标代码转换特殊函数,而从一直接访问的存贮装置20或22中取回合适的表、范围极限和触发值,并将其装入系统存贮器24中。当一程序被用于所有的语言和所有的互换代码时,该表、范围极限和触发值是一种国家语言和互换代码所特有的。在两个各为256字节的检验表的每个表中,对于有效标志来说该触发值等于或大于该最大十六进制(范围极限)。下面的表1-4是用来转换从IBM    PC代码到IBM主机代码表示的日本语字符的典型表。
表1提供常规的多个触发值,所有这些值至少等于或超过OXFO16的范围极限值。
表1
常数
_i_="FF"hex    (*  无效  *)
_r_="FE"hex    (*  保留  *)
_s_="FD"hex    (*  特殊  *)
包含有256个字节的第二字节检验表用来执行两个检验函数中的一个。步骤52表明了利用该第二字节检验表实施检验函数的解决方案。该检验函数:
(1)Index2=V2(a2
这里a2是双字节字符串中的第二字节,是一使用第二字节作为地址而在该字节检验阵列中进行查找操作以返回Index2的值的表。每一个有效标志值或触发值表明一个无效字符而从该操作中被返回。第二字节的一典型检验表再现在表2中。
表2
Verify2:字节的阵列[$OO..$FF]=(
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
$00,    $01,    $02,    $03,    $04,    $05,    $06,    $07,    $08,    $
09,    $0A,    $0B,    $0C,    $0D,    $0E,    $0F,
$10,    $11,    $12,    $13,    $14,    $15,    $16,    $17,    $18,    $
19,    $1A,    $1B,    $1C,    $1D,    $1E,    $1F,
$20,    $21,    $22,    $23,    $24,    $25,    $26,    $27,    $28,    $
29,    $2A,    $2B,    $2C,    $2D,    $2E,    $2F,
$30,    $31,    $32,    $33,    $34,    $35,    $36,    $37,    $38,    $
39,    $3A,    $3B,    $3C,    $3D,    $3E,    _i_,
$3F,    $40,    $41,    $42,    $43,    $44,    $45,    $46,    $47,    $
48,    $49,    $4A,    $4B,    $4C,    $4D,    $4E,
$4F,    $50,    $51,    $52,    $53,    $54,    $55,    $56,    $57,    $
58,    $59,    $5A,    $5B,    $5C,    $5D,    $5E,
$5F,    $60,    $61,    $62,    $63,    $64,    $65,    $66,    $67,    $
68,    $69,    $6A,    $6B,    $6C,    $6D,    $6E,
$6F,    $70,    $71,    $72,    $73,    $74,    $75,    $76,    $77,    $
78,    $79,    $7A,    $7B,    $7C,    $7D,    $7E,
$7F,    $80,    $81,    $82,    $83,    $84,    $85,    $86,    $87,    $
88,    $89,    $8A,    $8B,    $8C,    $8D,    $8E,
$8F,    $90,    $91,    $92,    $93,    $94,    $95,    $96,    $97,    $
98,    $99,    $9A,    $9B,    $9C,    $9D,    $9E,
$9F,    $A0,    $A1,    $A2,    $A3,    $A4,    $A5,    $A6,    $A7,    $
A8,    $A9,    $AA,    $AB,    $AC,    $AD,    $AE,
$AF,    $B0,    $B1,    $B2,    $B3,    $B4,    $B5,    $B6,    $B7,    $
B8,    $B9,    $BA,    $BB,    _i_,    _i_,    _i_);
在步骤54中,将该值标志2(Index2)与范围极限相比较以确定一有效的字符输出是否被接收,如果该触发值被返回,则表明该标志2变量超出范围极限并且在步骤56中给出一个无效指示。不必进一步进行与特殊字符有关的操作。如果该标志2的值指示一有效字符,则这时在步骤58中,对于标志2求得一检验函数V1
表3被命名为VERIFY    1,它是用来自双字节字符串的8毕特的第一字节作为一输入以变量的检验阵列,该检验函数;
(2)Index1=V1(a1
这时a1是双字节字符串的第一字节,是一使用第一字节作为一地址在该检验阵列进行查找操作以返回一标志1(Index1)的值的表。a1的检验表与a2的检验表有少许不同。如果-i-(“FF”16)从该表被返回,则整个双字节字符串无效。如果该表返回-r-(“FF”16),则该字符被保留,这表明该字符将来可能有效但并不是现在有效。如果该表返回-S-(“FD”16),则该字符表明需要特殊处理。“特殊处理”可以用来替代本发明去执行常规的、众所周知的转换,例如对于能被简单转换的用户定义的字符或对于一定的汉字字符范围。
表3
Verify1:字节的阵列[$OO..$FF]=(
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    $00,    $01,    $02,    $03,    _r_,    _r_,    _r_,    $04,    $
05,    $06,    $07,    $08,    $09,    $0A,    $0B,
$0C,    $0D,    $0E,    $0F,    $10,    $11,    $12,    $13,    $14,    $
15,    $16,    $17,    $18,    $19,    $1A,    $1B,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
_i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _
i_,    _i_,    _i_,    _i_,    _i_,    _i_,    _i_,
$1C,    $1D,    $1E,    $1F,    $20,    $21,    $22,    $23,    $24,    $
25,    $26,    _r_,    _r_,    _r_,    _r_,    _r_,
_s_,    _s_,    _s_,    _s_,    _s_,    _s_,    _s_,    _s_,    _s_,    _
s_,    $27,    $28,    $29,    _i_,    _i_,    _i_);
在步骤60中,确定对该标志1返回的值是否小于该阵列的范围极限。如果不是,紧接着执行步骤64,将标志1的值与表明一无效字符的触发值相比较。如果标志1等于无效字符的触发值,则执行步骤66,其结果是产生一误差信号。不再进一步执行与该字符有关的操作。
如果标志1不等于用于无效字符的触发值,则执行步骤64的NO转移。在步骤68中,将标志1与表明一保留的触发值相比较,以确定是否一保留值(例如用户编程字符)作为一字符而被接收(步骤70)。否则,设定一特殊处理提示(步骤72)。然后可处理涉及这种特殊函数字符的返回操作。
步骤60的YES转换是执行步骤74,这一步骤是实际的转换操作。为了对使用了新的互换代码的原始字符的字符串进行复原,标志1和标志2向一双字节转换阵列提供行和列标志。表4是这种阵列的部分内容,在该表中第一个十六进制数,即由符号“S”开始并紧跟着的四个字符是目标IBM主机代码,在括号内的第二个十进制数是IBM    PC代码,并且不是该阵列的部分。该第二个十六进制数是为转换到IBM    PC代码时使用的。从该转换函数的执行返回的是新的双字节字符串。
(3)RESULT=t(Index1,Index2)
表4
表:单词阵列[$OO..$29,$OO..$BB]=((
$4040(*8140*),    $4344(*8141*),    ...
$FDFF(*8240*),    $FDFF(*8241*),    ...
$4347(*8340*),    $4381(*8341*),    ...
$41C0(*8440*),    $41C1(*8441*),    ...
...
...
...
$4868(*9140*),    ...    $455B(*91E5*)
,    ...
...
...
...
表5是用于前述处理的一伪码程序。
表5
function  Translate(c:word):word;
var
Index1,Index2:BYTE;
begin
Index2:=Verify2[Byte2(c)];
if  Index2<$FO  then
begin
Index1:=Verify1[Byte1(c)];
if  Index1<$FO  then
Translate:=Table[Index1,Index2]
else
case  Index1  of
_i_:Translate:=Invalid;
_r_:Translate:=Reserved;
_s_:Translate:=Special(c);
end
end
else
Translate:=Invalid;
end;
现在参阅附图3至附图5,这些图表明了将来自计算机系统10的互换代码的汉字字符“大”的字符串转换为计算机系统12的互换代码的字符串的数据结构。为简单起见,这些图中与表2至表4中相对应的项采用十进制而不是用十六进制表示。如上面所表明的,对于汉字字符“大”的十六进制双字节字符串是“91E5”16。每个字节被分别处理。这样,对于检验函数“91”16和“E5”16提供了自变量。“91”16和“E5”16的等效的十进制数分别为145和229。
对于第一个字节的检验函数是由数据结构102来确定。十六进制“00”到“FF”转换为十进制整数0到255。0到255中的每一个数都对应于“i”,“r”,“s”中的一个或者“0”到“41”中的一个值。对于“0”到“41”,只允许仅仅对应一个值作为进入一转换阵列的标志。该双字节字符串的第一字节转换为十进制表示为145。在图表中对应于145的十进制整数为13(如由框104所指明的),它作为第一检验函数而被返回。
第二字节的检验函数是由数据结构106来确定。16进制数“00”到“FF”再次转换为十进制整数0到255。0到255的每个数都对应于“i”或“0”到“187”的一个值。在该数据结构中,“0”至“187”每个值只出现一次。该双字节字符串的第二字节转换为十进制表示是229。在图形中相应于229的是十进制整数164(用框108指出的),它作为第二检验函数而被返回。
矩阵110是日本语字符和转换阵列,它有188列(编号为0到187)和42行(编号为0到41),这些行和列对应于赋于检验函数结果的唯一的范围。和表4不同,仅以IBM主机代码表示。这样,检验函数的解(它们提供了i,r和s)指明被转换的双字节串的行和列。这样,行13(由数字112指明)和列164(由数字114指明)所共有的位置116是所希望的结果,此处是“455B”16
本发明提供了一种单一的程序,是用一种国家语言转换和检验表来执行的,以便针对朝鲜语、日本语、传统汉字和简化汉字在两种互换代码之间进行字符转换。与传统方法相比,其操作简化,减少了实现转化的操作时间。从图3-5的数据结构可以看出,该转换和检验表所占用的存贮空间远小于128000字节。对于日本语(包括所有的汉字、平假名、片假名和数字符号)的转换阵列和对于一种转换方式的两个检验阵列仅占存贮器的16304字节。
本发明给出了从一种互换代码转换为另一种互换代码的比字节字符表示,而这些被转换的字节不必代表可显示的字符。这些字节可以代表来自有意义的值的任何集合的项。当这些有意义的值是不连续的值时,更体现了本发明的优点,正像本发明披露的用于双字节数值的转换的方法一样,本发明还可以扩大到字节数值从一数据集到另一数据集的转换。双字节转换使用了两个检验阵列和一个二维转换阵列。三字节转换方法将使用三个检验阵列和一个三维转换阵列。这可以扩展到任何n字节转换。
本发明虽然特别参考一最佳实施例作了展示和描述,本领域的技术人员都了解,在不脱离本发明的精神和范围的前题下,可对本发明的形式和细节作各种变型。

Claims (8)

1、一种将第一互换代码的数据的多字节表示转换为第二互换代码的数据的多字节表示的方法,其特征是下列由一计算机执行的步骤:
利用与每个字节有关的一单独的检验阵列来检验所述第一互换代码的数据和多字节表示的每个字节;
响应于一个连续检验,从所述相关的检验阵列返回一个所述第一互换代码的数据的多字节表示的每个字节的标志值;和
在一多维转换矩阵中,利用所述返回标志值去访问一第二互换代码的数据的多字节表示。
2、一种如权利要求1所述的将第一互换代码的数据的多字节表示转换为第二互换代码的数据的多字节表示的方法,其特征是检验每个字节的步骤包括如下步骤:
利用所述字节作为一标志,放入与它相关的单独的检验阵列中;
从所述相关的单独检验阵列返回一数值;
将所述返回数值与范围极限相比较;和
响应于满足所述范围极限的所述返回数值,指明一个允许该方法利用所述返回值作为一标志值的连续检验。
3、如权利要求2所述的一种将第一互换代码的数据的多字节表示转换为第二互换代码的数据的多字节表示的方法,其特征是所述数据对应于一种所写国家语言中的字符。
4、如权利要求3所述的一种将第一互换代码的数据的多字节表示转换为第二互换代码的数据的多字节表示的方法,其特征是所述多字节包括第一和第二字节。
5、如权利要求2所述的一种将第一互换代码的数据的多字节表示转换为第二互换代码的数据的多字节表示的方法,其特征是步骤:
响应于落在该范围极限之外的所述返回数值,指明一个非连续的检验。
6、如权利要求5所述的一种将第一互换代码的数据的多字节表示转换为第二互换代码的数据的多字节表示的方法,其特征是步骤:
响应于一非连续检验,从所述返回值确定是否需要特殊处理。
7、如权利要求6所述的一种将第一互换代码的数据的多字节表示转换为第二互换代码的数据的多字节表示的方法,其特征是所述数据对应于一种所写国家语言中的字符。
8、如权利要求7所述的一种将第一互换代码的数据的多字节表示转换为第二互换代码的数据的多字节表示的方法,其特征是所述多字节表示包括第一和第二字节。
CN93101028A 1992-02-18 1993-02-16 多字节字符串字符的互换代码转换的改进方法 Expired - Fee Related CN1043383C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US837,228 1992-02-18
US07/837,228 US5309358A (en) 1992-02-18 1992-02-18 Method for interchange code conversion of multi-byte character string characters

Publications (2)

Publication Number Publication Date
CN1075563A true CN1075563A (zh) 1993-08-25
CN1043383C CN1043383C (zh) 1999-05-12

Family

ID=25273874

Family Applications (1)

Application Number Title Priority Date Filing Date
CN93101028A Expired - Fee Related CN1043383C (zh) 1992-02-18 1993-02-16 多字节字符串字符的互换代码转换的改进方法

Country Status (5)

Country Link
US (1) US5309358A (zh)
JP (1) JP2502021B2 (zh)
KR (1) KR970003322B1 (zh)
CN (1) CN1043383C (zh)
TW (1) TW325541B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100385375C (zh) * 2005-07-15 2008-04-30 光宝科技股份有限公司 字符输入系统及其方法
CN100399705C (zh) * 2003-01-24 2008-07-02 株式会社理光 字符串处理装置、字符串处理方法和成像装置
CN100483681C (zh) * 2004-04-16 2009-04-29 台湾积体电路制造股份有限公司 数据处理及虚拟集成电路制造环境中传送数据的方法
CN100524301C (zh) * 2004-12-09 2009-08-05 三菱电机株式会社 字符串对照装置
CN101079023B (zh) * 2003-01-24 2012-03-21 株式会社理光 字符串处理装置、字符串处理方法和成像装置
CN106663020A (zh) * 2014-08-29 2017-05-10 日立公共系统有限公司 迁移支持装置

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689723A (en) * 1993-02-03 1997-11-18 International Business Machines Corp Method for allowing single-byte character set and double-byte character set fonts in a double-byte character set code page
WO1997010556A1 (en) * 1995-09-13 1997-03-20 Apple Computer, Inc. Unicode converter
US5784069A (en) * 1995-09-13 1998-07-21 Apple Computer, Inc. Bidirectional code converter
US5784071A (en) * 1995-09-13 1998-07-21 Apple Computer, Inc. Context-based code convertor
US6185729B1 (en) * 1996-03-04 2001-02-06 Sun Microsystems, Inc. Multibyte locale for single byte languages
US5802482A (en) * 1996-04-26 1998-09-01 Silicon Graphics, Inc. System and method for processing graphic language characters
US6032165A (en) * 1997-02-05 2000-02-29 International Business Machines Corporation Method and system for converting multi-byte character strings between interchange codes within a computer system
US6085199A (en) * 1997-11-24 2000-07-04 International Business Machines Corporation Method for distributing a file in a plurality of different file formats
US6560596B1 (en) * 1998-08-31 2003-05-06 Multilingual Domains Llc Multiscript database system and method
US6204782B1 (en) 1998-09-25 2001-03-20 Apple Computer, Inc. Unicode conversion into multiple encodings
GB2343024A (en) * 1998-10-22 2000-04-26 Ibm Efficient data conversion of list of strings
US6453462B1 (en) 1999-06-29 2002-09-17 International Business Machines Corporation Mock translation system, method, and program using multi-byte placeholder characters to test translatability of software that will display multi-byte languages
US6507812B1 (en) 1999-06-29 2003-01-14 International Business Machines Corporation Mock translation method, system, and program to test software translatability
US6425123B1 (en) * 1999-06-29 2002-07-23 International Business Machines Corporation System, method, and program for testing translatability of software by using english multi-byte transliteration creating double-wide characters
US6546365B1 (en) 2000-02-04 2003-04-08 International Business Machines Corporation System for national language support and automated translation table
EP1193724B1 (en) 2000-09-18 2010-02-17 Isuzu Motors Limited Eddy current retarder comprising a magnet consisting of an electromagnet and a permanent magnet
US7900143B2 (en) * 2000-12-27 2011-03-01 Intel Corporation Large character set browser
US6393445B1 (en) * 2001-01-04 2002-05-21 Institute For Information Industry System for transforming Chinese character forms in real-time between a traditional character form and a simplified character form
US7013422B2 (en) * 2001-06-15 2006-03-14 International Business Machines Corporation Noise removal in multibyte text encodings using statistical models
US7483938B2 (en) * 2001-09-27 2009-01-27 International Business Machines Corporation System for character validation and method therefor
US20050010392A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Traditional Chinese / simplified Chinese character translator
US20050010391A1 (en) * 2003-07-10 2005-01-13 International Business Machines Corporation Chinese character / Pin Yin / English translator
US8137105B2 (en) * 2003-07-31 2012-03-20 International Business Machines Corporation Chinese/English vocabulary learning tool
US20050027547A1 (en) * 2003-07-31 2005-02-03 International Business Machines Corporation Chinese / Pin Yin / english dictionary
US7516062B2 (en) * 2005-04-19 2009-04-07 International Business Machines Corporation Language converter with enhanced search capability
JP4363533B2 (ja) * 2007-01-31 2009-11-11 インターナショナル・ビジネス・マシーンズ・コーポレーション 文字化けを検出するための装置、方法、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57157346A (en) * 1981-03-24 1982-09-28 Canon Inc Code converter
US4559614A (en) * 1983-07-05 1985-12-17 International Business Machines Corporation Interactive code format transform for communicating data between incompatible information processing systems
JPS6226535A (ja) * 1985-07-22 1987-02-04 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション プログラム内の変換テ−ブルの修正方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100399705C (zh) * 2003-01-24 2008-07-02 株式会社理光 字符串处理装置、字符串处理方法和成像装置
CN101079023B (zh) * 2003-01-24 2012-03-21 株式会社理光 字符串处理装置、字符串处理方法和成像装置
CN100483681C (zh) * 2004-04-16 2009-04-29 台湾积体电路制造股份有限公司 数据处理及虚拟集成电路制造环境中传送数据的方法
CN100524301C (zh) * 2004-12-09 2009-08-05 三菱电机株式会社 字符串对照装置
CN100385375C (zh) * 2005-07-15 2008-04-30 光宝科技股份有限公司 字符输入系统及其方法
CN106663020A (zh) * 2014-08-29 2017-05-10 日立公共系统有限公司 迁移支持装置
CN106663020B (zh) * 2014-08-29 2020-05-01 日立社会信息服务有限公司 迁移支持装置

Also Published As

Publication number Publication date
KR930018398A (ko) 1993-09-21
JP2502021B2 (ja) 1996-05-29
CN1043383C (zh) 1999-05-12
JPH0683571A (ja) 1994-03-25
US5309358A (en) 1994-05-03
TW325541B (en) 1998-01-21
KR970003322B1 (ko) 1997-03-17

Similar Documents

Publication Publication Date Title
CN1075563A (zh) 多字节字符串字符的互换代码转换的改进方法
CN1279426C (zh) 去多义性的简化键盘系统
CN1175630C (zh) 自动转换接收的电子邮件字符串的电子邮件终端,和电子邮件系统
CN1152546C (zh) 键输入装置和利用方向键的字符输入方法
US7949513B2 (en) Language module and method for use with text processing devices
CN1228737A (zh) 快速打字装置及方法
CN1732426A (zh) 用于移动通信终端的预测性文本条目和数据压缩方法
CN1838148A (zh) 电子设备和记录介质
CN1802642A (zh) 通过利用较短字代替长字来压缩标记语言文件的方法
CN1095560C (zh) 修改汉字转换结果的系统
CN1172231C (zh) 能改变打印机的打印标准的计算机操作的打印机
CN1645300A (zh) 通信终端设备,接收设备及其方法
CN1353840A (zh) 网页访问系统以及使用实名的方法
CN1180858A (zh) 字符输入装置
CN1449529A (zh) 进行格变换的方法和系统
CN1136496C (zh) 简化拼音-触摸屏鼠标式汉字输入方法
CN1131768A (zh) 数据处理系统和数据处理方法
CN1614585A (zh) 文本概括
CN1133996A (zh) 在字间插入特定字符码的装置和方法
CN1187677C (zh) 计算机整句汉字局部笔划输入方法
CN1107255C (zh) 无限有序字符集汉字全集方法和系统
CN1007093B (zh) 通用中西文终端机
CN87100313A (zh) 与汉语拼音兼容的兼容码及兼容键盘
CN1271135A (zh) 数据库的拼音代码查询法
CN1209699C (zh) 数字小键盘及拼音文字输入方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 19990512