CN1230754C - 多平台环境下的字符码转换系统 - Google Patents
多平台环境下的字符码转换系统 Download PDFInfo
- Publication number
- CN1230754C CN1230754C CNB011196912A CN01119691A CN1230754C CN 1230754 C CN1230754 C CN 1230754C CN B011196912 A CNB011196912 A CN B011196912A CN 01119691 A CN01119691 A CN 01119691A CN 1230754 C CN1230754 C CN 1230754C
- Authority
- CN
- China
- Prior art keywords
- code
- character
- data
- map information
- conversion
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
- G06F40/129—Handling non-Latin characters, e.g. kana-to-kanji conversion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character 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)
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种字符码转换系统。在字符码转换系统中,代码转换组件执行字符数据的代码转换,这些字符数据在映射信息的基础上,通过外部代码部分,在分别运行于平台上的处理程序和中间件中的内部代码转换模块之间交换,代码转换组件还将经过代码转换的字符数据转换成预定的数据格式,以备在内部代码转换模块中由数据处理部分进行代码转换。
Description
技术领域
本发明一般涉及在包括多个平台的多平台环境上实现的字符码转换系统,更具体地,本发明涉及一种字符码转换系统,这种字符码转换系统用于对字符数据进行代码转换,这些字符数据在处理程序之间交换,如应用程序和中间件之间,上述处理程序的每一个都独立运行在多平台中的一个平台上,本发明还涉及一种记录字符码转换程序的计算机可读记录介质。
背景技术
一个典型的开放系统,如使用因特网的Web系统或者一个传统的客户/服务器系统中,由于操作系统的不同或者其他类似的原因,具有不同编码制式的多个平台混在一起。在这样一种平台环境中,当实现功能程序间的连接,如应用程序之间的连接或者应用程序和中间件之间的连接时,必须保证同一个字符在基于平台的多个不同编码制式中被看作是唯一的字符,所以要求对在功能之间交换的字符数据进行代码转换。
当一个应用程序通过中间件实现了应用程序之间的连接,或者当一个应用程序与如数据管理系统(DBMS)这样的中间件自身直接交换字符数据,以实现应用程序和中间件之间的连接时,字符数据在中间件中的代码转换模块执行代码转换的同时被传送。
在用于这样的开放系统的中间件中,代码转换模块并不常常与字符类型相吻合,如特殊字符(卖方设计的字符)和外部字符(用户设计的字符),这些字符类型是基于某一特定的平台的,代码转换模块的典型结构是黑箱结构。
因此,举个例子来说,特殊字符和外部字符的传输通常分别由发送端或者接收端的应用程序来定义,应用程序通过代码转换库或其他类似的装置将特殊字符或外部字符转换成预先定义的字符码,这种代码转换库由各个应用程序提供,用来通过中间件中的代码转换模块交换字符数据。
然而,在上述的传统方法中,由于对于每个应用程序,特殊字符和外部字符的转换分别在由代码转换库或者其他类似的装置完成,所以要求管理代码转换库和应用程序的映射信息,由此产生了一个问题,那就是当字符数据在不是由代码转换库支持的代码制式之间交换时,或者当映射信息变化时,字符数据会丢失。
发明内容
因此本发明的目的是消除上述的问题,提供一种多平台环境下的字符码转换系统和记录了用于字符码转换系统的字符码转换程序的计算机可读记录介质。这个字符码转换系统可以减轻用户方管理代码转换库和映射信息的负担,还可以根据包括如特殊字符和外部字符的字符类型的字符数据,在多个不同的代码制式之间准确且容易地进行代码转换。
为了完成前述和其他的目标,根据本发明的第一个方面,提供了一个多平台环境下的字符码转换系统,这种字符码转换系统在包括有不同的代码制式的多个平台的多平台环境中实现,并且,分别执行字符数据的代码转换,这些字符数据分别通过内部字符转换模块在运行于上述平台上的多个处理程序之间交换。这种字符码转换系统包括:映射信息保持装置,用于保存反映多个不同代码制式中的字符数据之间的对应关系的映射信息;外部代码转换装置,用于根据映射信息,执行在处理程序和内部代码转换模块之间交换的字符数据的代码转换;数据处理装置,用于处理已被外部代码转换装置执行代码转换的字符数据,并将其转换成预定的数据格式,以备内部代码转换模块执行代码转换。
在上述的字符码转换系统中,数据处理装置更适宜处理已被外部代码转换装置执行代码转换的字符数据,并将其转换成用这些字符数据作为参数的字符功能程序的格式。内部代码转换模块能够执行多个不同代码制式之间的普通代码转换和另一种代码转换,即从两字节字符中取出低位-位字节。数据处理装置更适宜逐字节地取出已被外部代码转换装置执行代码转换的字符数据,并将取出的字符数据的每个字节都转换成具有两字节、且原来的字符数据作为低位-位字节的字符数据格式。
映射信息保持装置,外部代码转换装置和数据处理装置更适合于在运行处理程序的用户机上实现,用户机与管理服务器通过通信介质相连,管理服务器包括:用于统一管理映射信息的映射信息管理装置,用于分配映射信息、被映射信息管理装置管理的映射信息分配装置。对于用户计算机来说,用户计算机包括用于更新映射信息的映射信息更新装置,这些映射信息已被管理服务器的映射信息分配装置进行分配,保存在映射信息保持装置中。更进一步来说,字符码转换系统还包括:代码转换判断装置,用于根据内部代码转换模块中代码转换的设置状态,控制外部代码转换装置和数据处理装置。代码转换判断装置对外部代码转换装置和数据处理装置进行控制,是为了当内部转换模块中的代码转换失败时,只使用外部代码转换装置执行代码转换。
根据本发明的第二个方面,提供了记录字符码转换程序的计算机可读记录介质,这种字符码转换程序在包括多个平台的多平台环境中实现,这些平台都分别有不同代码制式,此转换程序执行字符数据的代码转换,这些字符数据通过内部代码转换模块,在分别运行于上述平台的处理程序之间进行交换。字符码转换程序执行:使实现多个平台计算机执行字符数据的代码转换的程序,这些字符数据根据反映多个不同代码制式的字符码之间的通信关系的映射信息。在处理程序和内部代码转换模块之间进行交换;使计算机处理经过代码转换的字符数据程序,该程序将这些字符数据转换成预定的数据格式,以备内部代码转换模块对其进行代码转换。
根据本发明的第一和第二方面可知,字符数据的代码转换根据映射信息执行,这些字符数据在分别运行于各自的平台上的处理程序和内部代码转换模块之间交换,经代码转换后的字符数据被处理成预定的数据格式,并将由内部代码转换模块进行码转换。因此,即使内部代码转换模块正在运行,也同样可以传输字符数据,以及容易且准确地在多个基于平台的不同的代码制式之间执行代码转换,这样使得同一个字符被看作是唯一的字符成为可能。由于这个原因,即使字符数据包括某些字符类型,如特殊字符(卖方设计的字符)和外部字符(用户设计的字符),也可能容易且准确地执行多个不同代码制式之间的代码转换,而不丢失字符类型。另外,由于数据处理装置和外部代码转换装置与处理程序相分离,所以在这些装置中使用的逻辑的可再用能力就增强了,因此减轻用户方管理代码转换库和映射信息负担是可能的。
附图说明
下面结合附图对本发明的优选实施例的详细描述,可以有助于更全面地理解本发明。然而,这些图并不局限于某一具体的实施例,只是为了解释和理解。
图示如下:
图1是解释本发明的字符码转换系统的优选实施例的框图;
图2是表示网络系统的整个结构的框图,图1所示的字符码转换系统应用于这种网络系统;
图3是表示数据库管理系统的优选实施例的框图,图1所示的字符码转换系统应用于这种数据库管理系统;
图4是表示映射关系的一个例子的表格,此映射信息反映了统一的字符编码标准和图3所示的优选实施例中的EUC之间的映射关系;
图5是解释图3所示的优选实施例中字符数据处理流程的流程图;
图6是解释图5所示的例子中数据处理方法的流程图;
图7是表示图6所示的步骤209的程序处理的流程图;
图8是解释图3所示的优选实施例中另外一个字符数据处理流程的流程图;
图9是解释图8所示的数据处理方法的流程图;
图10A和图10B分别是表示图9中所示的步骤403和408的处理的图表;
图11是表示应用了字符码转换系统的计算机系统外观的比例图。
具体实施方式
参照这些附图,下面将对本发明的优选实施例进行描述。图1和图2表示根据本发明的字符码转换系统的一个优选实施例。
如图1所示,在这个优选实施例中,字符码转换系统在包括平台21和22的多平台环境上实现。平台21和22有不同的代码制式。在图1中,参数23表示一个处理程序(应用程序),此处理程序运行在平台21上,用来将字符数据传输到另一个处理程序。参数24表示一个处理程序(应用程序或中间件实体),这个处理程序运行在平台22,用来接收从处理程序23传来的数据。参数25表示一个中间件,此中间件在字符数据在处理程序23和24之间交换时被使用,包括处理程序之间的数据连接功能和通信功能等等。若处理程序24是一个中间件实体,如数据库管理系(DBMS),参数25对应于与中间件实体连接的功能部分。中间件25中有一个内部代码转换模块26,它可以对在处理程序23和24之间交换的字符数据进行代码转换。特别地,中间件25中的内部代码转换模块26是设计来保存在平台21和22的代码制式中的字符代码之间的映射信息,并根据处理程序23中的字符数据,为处理程序24准备转换后的字符数据33。
如图1所示,处理程序23与代码转换组件连接,来执行处理,如对从处理程序23传来的字符数据(转换源字符数据31)进行代码转换,并将字符数据转换成预定的数据格式。由代码转换组件处理过的数据(处理字符数据32)通过处理程序23被传输到中间件25,在那里由内部代码转换模块26对其进行代码转换。
代码转换组件10中有一个代码转换判断部分12,一个数据处理部分13和一个外部代码转换部分14。外部代码转换部分14与映射信息保持部分11相连。
映射信息保持部分11被设计来保存多个不同的代码制式中的字符数据之间的对应关系(对于同一个字符在不同的代码制式中的代码值之间的对应关系),并将这些对应关系作为映射信息。外部代码转换部分14被设计来为映射信息保持部分11提供参数。
代码转换判断部分12的设计目的是根据中间件25中的内部代码转换模块26中的代码转换的设置状态,控制外部代码转换部分14和数据处理部分13。特别地,代码转换判断部分12的设计目的是通过调用处理程序23的应用程序接口(API)来接收从处理程序发出的表示转换内容的字符数据和参数,当处理程序23有请求时,代码转换判断部分12还可以控制外部代码转换部分14和数据处理部分13。也就是说,若设置内部代码转换模块26执行代码转换,字符数据和参数将被传输到数据处理部分13中。然后,在数据处理部分13的控制下,字符数据和参数由外部代码转换部分14执行代码转换,被数据处理部分13处理成预定的数据格式。另一方面,若内部代码转换模块26中的代码转换失败,字符数据和参数将会被传输到外部代码转换部分14,只由外部代码转换部分14执行代码转换。从处理程序23传来的参数包括数据处理部分13的处理类型和存在状态,另外还包括表示发送端和接收端的代码制式的信息。
数据处理部分13由代码转换判断部分12调用。设计数据处理部分13的目的是在字符数据和参数从处理程序23传来之后,触发外部代码转换部分14执行代码转换,并在执行代码转换结束之后,将字符数据转换成预定的数据格式,以备内部代码转换模块26进行代码转换。
并不只是代码转换判断部分12可以直接调用外部代码转换部分14,数据处理部分13也可以调用它。设计外部代码转换部分14的目的是对字符数据进行代码转换,这些字符数据根据从处理程序23传来的字符数据和参数,在各自的处理程序23,24和内部代码转换模块26之间被交换。外部代码转换部分14并不仅仅根据映射信息保持部分11保存的映射信息执行代码转换,它还根据预定的运算法则。换句话说,在外部代码转换部分14中,基于映射信息的代码转换和基于运算法则的代码转换结合在一起执行代码转换。当基于映射信息的代码转换和基于运算法则的代码转换结合在一起时,在两种代码转换的交迭范围内,将根据用于转换字符数据的系统来赋予优选权。
参照图2,下面阐述图1所示的字符码转换系统应用于其中的网络系统的一个实例。
如图2所示,运行处理程序23的用户计算机2实现了代码转换组件10(代码转换判断部分12,数据处理部分13和外部代码转换部分14)和如图1所示的映射信息保持部分11。用户计算机通过如局域网之类的通信介质3和管理服务器1相连。
设计管理服务器1的目的是统一管理保存在多个通过通信介质3相连的用户计算机中的映射信息。管理服务器1包括用于统一管理映射信息的映射信息管理组件15,和由映射信息管理组件15管理用于分配映射信息的映射信息分配组件16。映射信息管理组件15和统一管理的映射信息保持组件18相连接,在映射信息保持组件18中,多个不同的代码制式中的字符代码之间的对应关系(对于同一个字符在不同的代码制式的代码值之间的对应关系)作为映射信息被保存下来。映射信息管理组件15不仅能够定义和存储保存在统一管理的映射信息保持组件18中的映射信息,还可以在统一管理的映射信息保持组件18中的映射信息更新时,向用户计算机2请求分配和更新映射信息。
以由管理服务器1中的映射信息分配组件16所分配的映射信息为基础,用户计算机2可以利用映射信息更新组件17来更新保存在映射信息保持部分11中的映射信息。
根据这个结构,下面将叙述此优选实施例的运行。尽管图1只显示了数据转换在处理程序23,中同件25和处理程序24这种顺序下的状态,当数据转换在处理程序24,中间件25和处理程序23这种顺序下被执行时,同样可以执行这种处理。
在图1中,处理程序23通过中间件25将字符数据传送到处理程序24。
此时,处理程序23把转换源字符数据31传送到代码转换组件10,处理程序23把指示了转换内容的参数(表示发送端和接收端的代码制式的信息,以及在数据处理部分13中需要做的处理(如果处理是必须的,还有表示处理类型的信息)和字符数据一起传送。
代码转换组件10执行这样的过程:例如转换源字符数据31中的数据转换以及将数据转换为预定的数据格式。
根据与处理程序23相连的中间件的类型的不同,代码转换组件10执行不同的处理。是否执行转换源字符数据31中的代码转换以及将数据转换为预定的数据格式,或者只执行代码转换,要根据中间件的类型来决定。也就是说,当被设置为在中间件25中的内部代码转换模块26中执行代码转换时,并不要求只在外部代码转换部分14执行代码转换,但要求在数据处理部分13中将数据转换成预定的,用于内部代码转换模块26中的代码转换中的数据格式。另一方面,当中间件25中的内部代码转换模块26出故障或者中间件25中并没有提供内部代码转换模块26时,要求只在外部代码转换部分14执行代码转换。
首先,在代码转换判断部分12中,是否要求在数据处理部分13中执行处理,要有从处理程序23传来的参数决定。
当在内部代码转换模块26中执行代码转换时,要求在数据处理部分13中执行处理,以及在外部代码转换部分14执行代码转换。在这种情况下,字符数据和参数被传送到数据处理部分13中。然后,在数据处理部分13的控制下,根据映射信息保持部分11中保存的映射信息,启动外部代码转换部分14对字符数据执行代码转换。然后,由数据处理部分13处理经代码转换的字符数据,并将其转换成预定的,用在内部代码转换模块26中的代码转换中的数据格式。转换的结果作为已处理的字符数据32传送到处理程序32中。
另一方面,如果内部代码转换模块26中执行代码转换失败,字符数据和参数将被传送到外部代码转换部分14中,仅使用外部代码转换部分14执行代码转换。转换的结果将作为已处理的字符数据32返回到处理程序23中。
然后,处理程序23将从代码转换组件10中传来的,已处理的字符数据32,通过中间件25,传送给处理程序24。这时,当被设置为在中间件25中执行代码转换时,从处理程序23传来的,已处理过的字符数据32的代码转换由内部代码转换模块26执行,然后,将转换过的已处理过的字符数据32,作为已转换字符数据33,传送到处理程序24。另一方面,当中间件25中的内部代码转换模块26出故障或者中间件25中并没有提供内部代码转换模块26时,从处理程序23传来的已处理过的字符数据32将被直接传送给处理程序24。
图3是解释数据库管理系统(DBMS)的优选实施例的方框图,这个数据库管理系统使用了图1所示的字符码转换系统。图3中,运行在Windows平台21上,使用Java语言开发的Java应用程序23,用来作为字符数据发送源的处理程序。运行在Unix平台22上的数据库管理系统(DBMS)24,被作为目的端的处理程序,用于接收字符数据。
JDBC驱动器25,作为中间件用于访问DBMS 24。通过JDBC驱动器25将字符数据从Java应用程序23插入到DBMS 24中。当把字符数据从Java应用程序23插入到DBMS 24中时,通过JDBC驱动器25中的内部代码转换模块26,Java应用程序23发出的SQL语句(字符数据)被执行代码转换,从Java应用程序23的代码制式(统一字符编码标准)转换到DBMS24的代码制式。
(处理例1)
参考图4到图7,下面将讲述字符数据的处理流程的第一个例子,这就是图3所示的优选实施例中的字符数据的处理流程。在这个例子中,数据处理部分13对已被外部代码转换部分14进行代码转换的字符数据进行处理,将之转换为用字符数据作为变元的字符功能程序的格式。
在第一个处理例子中,假设基于特定平台的字符类型,如特殊字符和外部字符,包括在从Java应用程序23插入剩DBMS 24中的字符数据中。假设代码转换组件10保存了一些基于前递的字符类型的统一字符编码标准和EUC之问的对应关系,这些对应关系是作为映射信息保存在在映射信息保持部分11中的,代码转换组件还可以通过外部代码转换部分14将这些字符类型从统一字符编码标准转换到EUC。内部代码转换模块26并不和这些字符类型相对应。
举一个例子,将字符串“
芝太郎”从Java应用程序23插入到DBMS24中,下面讲述代码转换组件10中字符数据的处理流程。附加一句,字符串“
芝太郎”由四个中文字符“
”、“芝”、“太”和“郎”组成。图4给出了字符串“
芝太郎”的映射信息。在图4中,字符串“
芝太郎”中的字符“
”是外部字符(用户设计的字符)。在统一字符编码标准中,字符“
”由代码值“0xE000)表示。
然后,Java应用程序23将字符数据“
芝太郎”传送到代码转换组件10中请求进行代码转换,将其转换为另一种数据格式。继而,Java应用程序23获得转换结果“CHR(62881)||“芝太郎”。此外,“CHR(XXXXX)”是一个DBMS 24能够识别的字符功能程序,它用这样的装置来表示数据,将单个字符用一个字符串“XXXXX”作为代码值来表示。而且,假定“XXXXX”用十进制数来表示。例如,“CHR(41377)”表示一个代码值为“41377(0xA1A1)”的字符,也就是EUC代码设置中的一个字符。
然后,Java应用程序23根据转换结果合成一个SQL语句“INSERTINTOVALUE(1,“CHR(62881)||“芝太郎”),并执行这个SQL语句。
因而,JDBC驱动程序25发出SQL指令给DBMS 24(步骤105)。这时,由JDBC驱动程序25中的内部代码转换模块26执行从统一字符编码标准到EUC的代码转换。因为作为处理对象的外部字符“
”是一个为了变成字符功能程序而被处理的字符数据,又因为包括在(CHR(62881))中的所有字符都是由一个字节的代码表示的,所以可以作为能被DBMS 24识别为EUC外部字符(“0xF5A1)的字符数据被传输。
DBMS 24收到SQL语句“INSERT INTO VALUE(1,“CHR(62881)||“芝太郎”)”(步骤106)后,将EUC字符数据“
芝太郎”插入到数据库中(步骤107)。
另一方面,当Java应用程序23获得从DBMS 24中重新取得的结果时,可以使用DBMS 24中的功能程序处理字符数据。具体地,当DBMS 24中存在一个存储代码值的十进制字符串函数HEX(XXXXX)作为DBMS 24端的程序时,用“SELECT HEX(XXXXX)FROM USERS”的SQL语句获得重新取得的结果,代码转换组件10中的外部代码转换部分14将由十进制“HEX(XXXXX)”的十进制字符串“XXXXX”表示的代码值进行代码转换,从EUC转换到统一字符编码标准,这样就有可能取得包括字符类型为外部字符和特殊字符的字符数据。
图6和图7是解释图5所示例子中的数据处理方法的一个例子的流程图。如图6所示,当代码转换组件19中的数据处理部分13从Java应用程序23获得字符数据“
芝太郎”后,数据处理部分13从字符数据“
芝太郎”中逐个取出字符(步骤202),并判断取出的字符是外部字符还是特殊字符(步骤203)。
若在步骤203中判断出取出的字符是外部字符或者特殊字符,那么就请求外部代码转换部分14收到请求执行代码转换并获得转换结果(步骤204)。
之后,转换过的EUC代码值被转换成十进制字符串“XXXXX”(步骤205),然后,组成了用十进制字符串“XXXXX”作为格式的字符串“CHR(XXXXX)”。
另一方面,若在步骤203中判断出取出的字符不是外部字符或者特殊字符,那么取出的字符将被顺序存储在字符数组[1]中(步骤207),这些字符被重复的存储在字符数组[1]中直到又检测出一个外部字符或者特殊字符。尽管这里的外部字符都出现在字符串头部,若又检测出一个外部字符或者特殊字符,字符串的元素就会被加起来,并顺序存储在字符数组[2]中。
最后,把每一个数组元素中的字符串和一个其它字符串的元素合并起来(步骤209),这些字符串元素已被划分为一个包括在字符功能程序中,指示是否为外部字符或是特殊字符的字符串元素,,然后返回合并的字符串“CHR(62881)||“芝太郎”步骤210。图7中显示了字符数组[0]和字符数组[1]合并的状态。
(处理例2)
参照图8到图10,下面讲述图3所示的优选实施例中的字符数据的第二个处理例子。在第二个处理例子中,数据处理部分13逐字节地取出已由外部代码转换部分14执行过代码转换处理的字符数据,并将这些取出的单字节字符数据转换成双字节数据格式,在这种格式中,原来的单字节字符放在低位。
在第二个处理例子中也假定基于平台的字符类型,如外部字符和特殊字符,被包括在从Java应用程序23插入到DBMS 24中的字符数据中。假设代码转换组件10保存了一些基于前述的字符类型的统一字符编码标准和EUC之间的对应关系,这些对应关系是作为映射信息保存在在映射信息保持部分11中的,代码转换组还可以通过外部代码转换部分14将这些字符类型从统一字符编码标准转换到EUC。尽管在JDBC驱动程序25中的内部代码转换模块26和这些字符类型并不相符,但是内部代码转模块26能够选择不同于统一字符编码标准和EUC之间的代码转换的另一种代码转换(单字节编码系统ISO8859_1)。单字节编码系统ISO885_1被设计来用于从双字节字符代码中只取出低位字节的,并可以从统一字符编码标准的字符数据中通过低位字节“0XFF”取出代码值“0X00”。
如图8所示,首先,Java应用程序23为插入字符数据“
芝太郎”作准备(步骤301)。
然后,Java应用程序23基于字符数据“
芝太郎”生成一条SQL语句“INSERT INTO USERS VALUES(1,“
芝太郎”)”(步骤302)。接着,Java应用程序23要求代码转换组件10对整个SQL语句进行代码转换,并将其转换为预定的数据格式(步骤303)。继而,Java应用程序23获取转换结果(步骤304)。通过抽取代码值,这些代码值已被转换为DBMS 24中的代码制式EUC,再逐字节地在抽取的代码值的头部加上“0X00”,获取的转换结果是统一字符编码标准的两字节字符数据。
之后,Java应用程序23将单字节编码系统ISO8859_1分配给JDBC驱动程序25中的内部代码转换模块26,并执行此语句(步骤305)。
然后,JDBC驱动程序25将SQL语句发送给DBMS 24(步骤306)。这时,JDBC驱动程序25中的内部代码转换模块26去掉每一个字符数据的头字节的代码值“0X00”,这些字符数据是包括在统一字符编码字符数据中的。通过低位字节“0XFF”(EUC代码值),代码值“0X00”部分被原样取出。因此,即使JDBC驱动程序25中的内部代码转换模块26和外部字符和特殊字符地字符类型不相符,实际上外部字符“
可以作为能被EUC外部字符(0XF5A1)正常识别的字符数据被传送。
在DBMS 24中,收到SQL语句“INSERT INTO USERS VALUES(1,“
芝太郎”)”之后(步骤307),EUC字符数据“
芝太郎”被插入到数据库中(步骤308)。
当Java应用程序23在DBMS 24中重新获得结果时,JDBC驱动程序25中的内部代码转换模块26使用单字节编码系统ISO8859_1逐字节地抽取EUC代码,并返回头部加了“0X00”的字符代码。因此,如果代码转换组件10中的换数据处理部分13去掉了统一字符编码的两字节字符数据的头部“0X00”来准备一个单字节的字节数组,并且外部代码转换部分14对这个字节数组进行代码转换,使之变为统一字符编码标准,那么取得字符类型为如外部字符或特殊字符的字符数据是有可能的。
图9和图10是解释图8所示例子中的数据处理方法的流程图。如图9所示,当代码转换组件10中的换数据处理部分13通过代码转换判断部分12从Java应用程序中获得字符数据“
芝太郎”时(步骤401),数据处理部分13要求外部代码转换部分14对字符数据“
芝太郎”执行代码转换(步骤402),并获取转换结果作为EUC代码值(步骤403)。这时,由字符数据“
芝太郎”转换来的EUC代码值以图10A所示的字节数据的格式被保存起来。
之后,逐字节地抽取转换过的EUC代码值,在头部加上“0X00”,以准备统一字符编码标准的两字节字符数据(步骤405)。
准备好的统一字符编码标准的字符数据存放在一个字符数组中(步骤406)。
最后,当对字符数据“
芝太郎”中的所有字符执行步骤401到405的处理后,字符数据存放在如图10B所示的字符数组,并返回处理过的字符数据(步骤408)。如图10B所示,例如,EUC代码值“0XF5A1”分别作为统一字符编码标准的字符数据“0X00F5”和“0X00A1)存储在字符数组[0]和[1]中,并返回处理过的字符数组。
在第二个处理例中,预先假定JDBC驱动程序25中的内部代码转换模块26可以使用单字节编码系统ISO8859_1。然而,与上述将字符功能程序合并到SQL语句的第一个处理例相比较,第二个处理例具有以下优势,不要求判断外部字符和特殊字符是否存在,而要求根据DBMS 24的具体描述,如字符功能程序等,执行任何代码转换。
如上所述,根据这个优选实施例,对分别运行于平台21、22上的处理程序23、24和中间件25中的内部代码转换模块26之间所交换的字符数据在映射信息的基础上执行代码转换,转换过的字符数据被处理成预定的数据格式,并且内部代码转换模块26将对其进行代码转换。因此,即使中间件25中的内部代码转换模块26正在运行,也同样可能传输字符数据,并准确且容易地在基于平台21和22的多个不同的代码制式之间执行代码转换,因此把同一个字符看作是唯一的字符是可能的。由于这个原因,即使字符数据包括字符类型,如特殊数据(买方设计的字符)和外部字符(用户设计的字符),准确容易地在多个不同的代码制式之间执行代码转换,而不忽略字符类型也是可能的。另外,因为代码转换组件10(数据处理部分13和外部代码转换部分14)与处理程序23相分离,所以提高了用于代码转换组件10的逻辑的可再用性,这样就减轻了用户方管理代码转换库和映射信息的负担。
根据这个优选实施例,映射信息由管理服务器1中的映射信息管理组件15统一管理,由映射信息分配组件16分配给用户计算机2,最后,保存在映射信息保存部分11中的映射信息由用户计算机2中的映射信息更新组件17进行更新。因此,可以在通过通信介质3互相连接的多个用户计算机2之间统一映射信息,以至于多个代码制式中的同一个字符的代码值之间的对应关系会是唯一的。
在上述的优选实施例中,代码转换组件10、映射信息管理组件15、映射信息分配组件16和映射信息更新组件17全部可以作为运行在用户计算机2上的程序组件来实现。包括每一个程序组件的字符码转换程序存储在不同的记录介质中,用户计算机2读出此程序以执行上述的处理。
图11中显示了一个用户计算机2的例子,前面提到的字符码转换程序就装载在这台计算机中。如图11所示,用户计算机2包括:被安置在例如小塔(minitower)之类的外壳中的计算机主体41;显示单元42,如阴极射线管(CRT);打印机43,作为记录输出单元;键盘44a和鼠标44b,作为输入单元;软盘驱动器46,用于从作为记录介质的软盘51上读出数据;CD-ROM驱动器47,用于从作为记录介质的CD-ROM上读出数据。另外,计算机主体41中提供了内存(没有显示),如随机存储器(RAM),和硬盘(没有显示)。
优选实施例中使用的记录介质不仅包括软盘和CD-ROM,而且包括磁盘、硬盘、其他光盘(CD-R,DVD等)、光磁盘和半导体存储器。记录介质可以使用任何记录装置,只要这些装置可以存储程序,并可以被计算机读取。记录介质也可以包括数据传输介质,如用于在网络中传输数据的载波。而且,记录介质不应被限制为独立于计算机的记录介质,还应该包括这样的记录介质,在这种记录介质中,程序通过局域网传输,Internet或者类似的网络可以被下载保存或临时保存。本发明不应限制使用单一的记录介质,关于本发明的记录介质的概念包括这些,那就是在优选实施例中通过多种记录介质执行处理。
根据本发明,根据从记录介质读出的,安装在计算机中的字符代码转换程序的指令,在优选实施例中所执行的部分处理可以由另一个程序(中间间或其他类似的)执行,如运行在计算机上的操作系统,数据库管理软件或网络软件。
如上所述,根据本发明,可以减轻用户方管理代码转换库和映射信息的负担,也可以准确且容易地执行包括如外部字符或特殊字符的字符类型的,多个代码制式之间的字符数据的代码转换。
为了更好地理解本发明,虽然通过优选实施例已经将其公开,但是应该理解:只要不背离本发明的原则,本发明可以具体应用到不同的方面。因此,不脱离由后附的权利要求书所限定的本发明的范围,本发明应该被理解为包括所有可能的实施例和对已经公开的实施例的修改。
Claims (6)
1.一种多平台环境下的字符码转换系统,所述字符码转换系统是在多平台环境下实现的,所述多平台环境包括多个平台,这些平台分别有不同的代码制式,还包括一个内部代码转换模块,用于对运行在所述平台上的多个处理程序之间交换的字符数据进行代码转换,上述的字符码转换系统包括:
一个映射信息保持装置,其保持的映射信息表示包含在一个发送源的代码制式中的一个字符代码和包含在一个接收目的地的代码制式中的一个字符代码之间的对应关系;
一个外部代码转换装置,其对字符数据进行代码转换,从而在所述映射信息的基础上,产生字符数据的代码转换,其中所述字符数据将通过所述内部代码转换模块在所述发送源和接收目的地之间被交换;
一个数据处理装置,其处理所述字符数据的代码转换,以得到处理后的预定数据格式的字符数据,从而,即使当所述内部代码转换模块的代码转换正在被执行时,所述处理后的字符数据同样能通过所述内部代码转换模块从所述发送源被发送到所述接收目的地。
2.按照权利要求1所述的多平台环境下的字符码转换系统,其中,所述的数据处理装置利用所述字符数据作为变元对已经被外部代码转换装置转换的字符数据进行处理,使之成为字符功能程序的格式。
3.按照权利要求2所述的多平台环境下的字符码转换系统,其中所述的外部代码转换装置和数据处理装置分别对能够被上述内部代码转换模块进行代码转换的字符代码以外的字符代码执行代码转换,并将上述字符代码处理成预定的数据格式。
4.按照权利要求1所述的多平台环境下的字符码转换系统,其中所述的内部代码转换模块能够执行所述的多个不同的代码制式之间的普通代码转换和另一种代码转换,即从双字节代码中取出低位-位字节,和
所述数据处理装置逐字节地取出已经被外部代码转换装置执行过代码转换的字符数据,并把取出的字符数据的每个字节转换成包括所述字符数据作为低位-位字节的一种双字节字符数据的格式。
5.按照权利要求1所述的多平台环境下的字符码转换系统,其中所述的映射信息保持装置,所述外部代码转换装置和所述数据处理装置在运行了所述处理程序的用户计算机中实现;
所述用户计算机通过通信介质和管理服务器相连,
对于用户计算机,所述管理服务器包括用于统一管理映射信息的映射信息管理装置,用于分配映射信息的映射信息分配装置,这种映射信息分配装置由映射信息管理装置管理,和
所述的用户计算机包括映射信息更新装置,映射信息更新装置根据已经被所述管理服务器中的映射信息分配装置进行分配的映射信息,更新保存在映射信息保持装置中的映射信息。
6.按照权利要求1所述的多平台环境下的字符码转换系统,还包括:
代码转换判断装置,用于根据所述内部代码转换模块中代码转换的设置状态,控制所述外部代码转换装置和数据处理装置,所述代码转换判断装置控制外部代码转换装置和数据处理装置,是为了当内部代码转换模块中的代码转换失败时,只用外部代码转换装置执行代码转换。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP049503/2000 | 2000-02-25 | ||
JP2000049503A JP3917343B2 (ja) | 2000-02-25 | 2000-02-25 | マルチプラットフォーム環境における文字コード変換方式および文字コード変換プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1324031A CN1324031A (zh) | 2001-11-28 |
CN1230754C true CN1230754C (zh) | 2005-12-07 |
Family
ID=18571437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011196912A Expired - Fee Related CN1230754C (zh) | 2000-02-25 | 2001-02-23 | 多平台环境下的字符码转换系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6999082B2 (zh) |
JP (1) | JP3917343B2 (zh) |
CN (1) | CN1230754C (zh) |
TW (1) | TWI225987B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635016A (zh) * | 2018-10-16 | 2019-04-16 | 深圳壹账通智能科技有限公司 | 数据转换方法、装置、设备及计算机可读存储介质 |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6960133B1 (en) | 2000-08-28 | 2005-11-01 | Igt | Slot machine game having a plurality of ways for a user to obtain payouts based on selection of one or more symbols (power pays) |
US6769985B1 (en) * | 2000-05-31 | 2004-08-03 | Igt | Gaming device and method for enhancing the issuance or transfer of an award |
US7695363B2 (en) | 2000-06-23 | 2010-04-13 | Igt | Gaming device having multiple display interfaces |
US7699699B2 (en) | 2000-06-23 | 2010-04-20 | Igt | Gaming device having multiple selectable display interfaces based on player's wagers |
US6739973B1 (en) | 2000-10-11 | 2004-05-25 | Igt | Gaming device having changed or generated player stimuli |
US7901291B2 (en) * | 2001-09-28 | 2011-03-08 | Igt | Gaming device operable with platform independent code and method |
US7708642B2 (en) | 2001-10-15 | 2010-05-04 | Igt | Gaming device having pitch-shifted sound and music |
US7666098B2 (en) * | 2001-10-15 | 2010-02-23 | Igt | Gaming device having modified reel spin sounds to highlight and enhance positive player outcomes |
US7356523B2 (en) * | 2002-05-23 | 2008-04-08 | International Business Machines Corporation | Dynamic optimization of prepared statements in a statement pool |
US7127463B2 (en) * | 2002-04-18 | 2006-10-24 | International Business Machines Corporation | Optimization of database network traffic based upon data-use analysis |
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 |
US7789748B2 (en) * | 2003-09-04 | 2010-09-07 | Igt | Gaming device having player-selectable music |
US7849085B2 (en) * | 2004-05-18 | 2010-12-07 | Oracle International Corporation | System and method for implementing MBSTRING in weblogic tuxedo connector |
JP4072691B2 (ja) * | 2004-07-15 | 2008-04-09 | ソニー株式会社 | 文字情報変換装置および文字情報変換方法 |
US7698638B2 (en) * | 2004-09-15 | 2010-04-13 | Microsoft Corporation | Systems and methods for automated equation buildup |
US8043155B2 (en) | 2004-10-18 | 2011-10-25 | Igt | Gaming device having a plurality of wildcard symbol patterns |
US7215264B2 (en) * | 2005-09-30 | 2007-05-08 | Pixtel Media Technology (P)Ltd. | Methods and systems for character conversion |
US7568156B1 (en) * | 2005-02-08 | 2009-07-28 | Emc Corporation | Language rendering |
US7516062B2 (en) * | 2005-04-19 | 2009-04-07 | International Business Machines Corporation | Language converter with enhanced search capability |
US8020091B2 (en) * | 2005-07-15 | 2011-09-13 | Microsoft Corporation | Alignment and breaking of mathematical expressions in documents |
US20070033524A1 (en) * | 2005-08-02 | 2007-02-08 | Microsoft Corporation | Mapping codes for characters in mathematical expressions |
US20070115488A1 (en) * | 2005-11-22 | 2007-05-24 | International Business Machines Corporation | Methods and systems for multiple encodings within a code page |
US8595452B1 (en) * | 2005-11-30 | 2013-11-26 | Sprint Communications Company L.P. | System and method for streaming data conversion and replication |
US7913165B2 (en) * | 2005-12-15 | 2011-03-22 | Kyocera Corporation | Inserting objects using a text editor that supports scalable fonts |
US7405677B2 (en) * | 2006-08-08 | 2008-07-29 | International Business Machines Corporation | Apparatus, system, and method for incremental encoding conversion of XML data using Java |
US8491392B2 (en) | 2006-10-24 | 2013-07-23 | Igt | Gaming system and method having promotions based on player selected gaming environment preferences |
US7408484B1 (en) * | 2007-02-20 | 2008-08-05 | International Business Machines Corporation | Method of doing PACK unicode zSeries instructions |
US7904537B2 (en) * | 2008-01-11 | 2011-03-08 | Microsoft Corporation | Architecture for online communal and connected experiences |
US8591308B2 (en) | 2008-09-10 | 2013-11-26 | Igt | Gaming system and method providing indication of notable symbols including audible indication |
US20100115403A1 (en) * | 2008-11-06 | 2010-05-06 | Microsoft Corporation | Transforming math text objects using build down and build up |
US7719441B1 (en) | 2009-01-05 | 2010-05-18 | Honeywell International Inc. | System and method for transferring bit-oriented data over an ACARS character-oriented data link |
US8452005B2 (en) * | 2009-11-30 | 2013-05-28 | Red Hat, Inc. | Unicode-compatible encipherment |
US8460090B1 (en) | 2012-01-20 | 2013-06-11 | Igt | Gaming system, gaming device, and method providing an estimated emotional state of a player based on the occurrence of one or more designated events |
US9245407B2 (en) | 2012-07-06 | 2016-01-26 | Igt | Gaming system and method that determines awards based on quantities of symbols included in one or more strings of related symbols displayed along one or more paylines |
US8740689B2 (en) | 2012-07-06 | 2014-06-03 | Igt | Gaming system and method configured to operate a game associated with a reflector symbol |
CN104281601B (zh) | 2013-07-05 | 2018-09-25 | 北大方正集团有限公司 | 构建超大字库的方法及装置、字符显示方法及装置 |
US9172395B2 (en) | 2013-11-16 | 2015-10-27 | International Business Machines Corporation | Generating an ICONV module in real time |
JP6197706B2 (ja) * | 2014-03-14 | 2017-09-20 | カシオ計算機株式会社 | 電子機器、問題出力方法およびプログラム |
JP6138088B2 (ja) | 2014-06-30 | 2017-05-31 | キヤノン株式会社 | 情報処理装置、制御方法、及びソフトウェアプログラム |
JP6491438B2 (ja) * | 2014-08-29 | 2019-03-27 | 株式会社日立社会情報サービス | マイグレーション支援装置 |
US9513978B2 (en) | 2014-10-17 | 2016-12-06 | International Business Machines Corporation | Integrated support for application porting transparency and streamlined system migration in heterogeneous platform environments |
US9794202B1 (en) * | 2016-08-25 | 2017-10-17 | Amojee, Inc. | Messaging including standard and custom characters |
US10298522B2 (en) | 2017-04-10 | 2019-05-21 | Amojee, Inc. | Messaging including custom characters with tags localized to language of user receiving message |
CN110334141B (zh) * | 2019-05-30 | 2023-11-21 | 平安科技(深圳)有限公司 | 数据转换的方法、装置、计算机设备和存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2830884B2 (ja) * | 1992-02-06 | 1998-12-02 | 日本電気株式会社 | 多重文字コードセットの入出力変換方式 |
JPH07271777A (ja) * | 1994-03-31 | 1995-10-20 | Fujitsu Ltd | 分散情報処理システムにおける文字コード管理方式 |
JP3444671B2 (ja) * | 1994-11-08 | 2003-09-08 | 富士通株式会社 | 並列コード変換処理方法とそのシステム |
US5708828A (en) * | 1995-05-25 | 1998-01-13 | Reliant Data Systems | System for converting data from input data environment using first format to output data environment using second format by executing the associations between their fields |
JP3535266B2 (ja) * | 1995-06-26 | 2004-06-07 | 富士通株式会社 | 外字拡張利用方式 |
US5890184A (en) * | 1996-05-16 | 1999-03-30 | Fujitsu Limited | External character management apparatus |
-
2000
- 2000-02-25 JP JP2000049503A patent/JP3917343B2/ja not_active Expired - Fee Related
-
2001
- 2001-02-23 TW TW090104195A patent/TWI225987B/zh not_active IP Right Cessation
- 2001-02-23 US US09/790,606 patent/US6999082B2/en not_active Expired - Fee Related
- 2001-02-23 CN CNB011196912A patent/CN1230754C/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635016A (zh) * | 2018-10-16 | 2019-04-16 | 深圳壹账通智能科技有限公司 | 数据转换方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2001243217A (ja) | 2001-09-07 |
TWI225987B (en) | 2005-01-01 |
JP3917343B2 (ja) | 2007-05-23 |
US6999082B2 (en) | 2006-02-14 |
CN1324031A (zh) | 2001-11-28 |
US20010029542A1 (en) | 2001-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1230754C (zh) | 多平台环境下的字符码转换系统 | |
US7293040B2 (en) | System and methodology for database migration between platforms | |
CN101661494B (zh) | 一种分布式中间件与数据库数据交互方法 | |
CN1723461A (zh) | 用于数据库存储中的对象持久存储的系统和方法 | |
US11200234B2 (en) | Non-disruptive dynamic ad-hoc database catalog services | |
US20010049743A1 (en) | Message transformation selection tool and method | |
CN1702621A (zh) | 采用表的语言的本地化 | |
CN1669024A (zh) | 结构化文档、尤其xml文档的编码/译码的方法和装置 | |
CN1713179A (zh) | 在对象模型中的影响分析 | |
CN1735890A (zh) | 存储和检索在定义类型的数据库存储外的用户定义类型的字段的系统和方法 | |
US7404186B2 (en) | Signature serialization | |
CN102760143A (zh) | 一种在数据库系统中动态整合执行结构的方法和装置 | |
CN1286053C (zh) | 可扩展的文件格式 | |
CN110647316B (zh) | 通用业务对象的生成方法、装置、计算机设备及存储介质 | |
US20050253739A1 (en) | Cross platform transportable tablespaces | |
US20020147962A1 (en) | Method and system for incorporating legacy applications into a distributed data processing environment | |
CN1519710A (zh) | 用于以一种语言独立语法记录宏的方法和系统 | |
CN1526104A (zh) | 分析结构化数据 | |
CN101025763A (zh) | 在传送字节串数据期间进行动态数据格式化的方法和系统 | |
CN1766876A (zh) | 用于管理结构化文件的系统和方法 | |
CN109063091B (zh) | 混合编码的数据迁移方法、数据迁移装置和存储介质 | |
CN1856784A (zh) | 用于存储平台中的锁定和隔离的系统和方法 | |
EP0800142B1 (en) | Method for path name format conversion | |
CN1308852C (zh) | 数据传输方法和数据传输系统 | |
CA2307359C (en) | Method, system and computer program product for optimization of single byte character processing employed within a multibyte character encoding scheme |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20051207 Termination date: 20100223 |