在网络中传输多字节字符的方法、装置和产品的制作方法

文档序号:6416511阅读:224来源:国知局
专利名称:在网络中传输多字节字符的方法、装置和产品的制作方法
与本发明相容的方法一般涉及计算机系统,尤其涉及在网络中传输多字节字符的方法。
互联网是诸网络的合成网络,它实际上使全球每一角落的用户之间易于进行电子通信。全球网(world wide web)(“Web”)是能使用户找出被存信息而创立的互联网的子网。一般讲,Web能使一个叫“客户机”(client)和另一叫“服务器”(server)的两台计算机通过互联网使用超文本传输协议(HTTP)进行通信。执行“Web浏览器”(Web browser)或者特定的软件程序,它允许用户从服务器那里获取“网页”(Web page)形式的信息。开发商采用称做超文本标记语言(HTML)的软件语言来产生这些网页。
许多现有应用程序允许用户利用互联网上的信息。例如,HotJava ViewsTM是一组应用程序,用以向用户提供电子邮件(e-mail)、日历、名称目录存取以及互联网浏览能力,这些全部都用来自Sun Microsystems,Inc.的JavaTM编码语言写成。Name ViewTM是个应用程序,能使用户去考察由在Hot Java View的应用程序提供的,或从现有目录数据库下载的名称目录。Java编程语言是一种面向结果(object-oriented)的编程语言,它在例如由James Gosling、Bill Joy和Guy Steele著,Addison-Wesley 1996出版的标题为“Java语言规范”的教科书中加以论述。Sun、Sun Microsystems、the Sun Logo、Name View、Hot Java Views以及Java均为Sun Microsystems,Inc.在美国和其他国家的商标或注册商标。
NameView用户可以在与互联网相连的本地服务器或其他Web服务器搜寻信息的目录数据库。为了使用象NameView一类应用软件去访问Web服务器并取得信息,用户以称为“请求”(request)的输入形式输入信息。公共网关接口(CGI)手稿(script)是一种应用程序,它收到来自用户的信息,并将该被请求的信息译成HTTP格式,用以通过互联网传输。CGI是标准的协议,用以在服务器和诸如在客户机上的应用软件等在服务器之外的应用软件之间交换信息。当客户机发送CGI手稿和HTTP请求时,正在接收的Web服务器就执行CGI手稿,并把由请求所规定的信息送回至客户机。
在某些情况下,HTTP请求首先用诸如“MIME”协议(它是多媒体电子邮件消息用标准协议)加以封装。MIME协议封装该请求为输送用文件,并给文件的编码形式添加上首标(header)。该首标规定某些信息,诸如所用的编码方法,和请求服务器运行CGI手稿。
互联网的全球化产生了需要能在任何地方运行,并使用各种各样语言的应用程序。在美国的用户可能要使用Name View一类的应用程序去搜寻一位日本朋友的电子邮件地址。包含该信息的目录数据库可能用日语和日文字符的数字表示加以存储。带有许多不同字符的语言可以用单一码(Unicode)字符编码加以编码。单一码是由单一码联合会(Unicode Consortium)建立的16位字符编码系统。在Unicode中每一字符由数字信息的两个字节表示。然而,在美国国家信息交换标准代码(ASCII)格式中,每一字符由数字码的7位表示。具有有限个字符组的英语和其他语言典型地使用ASCII编码格式,每一字符由一个字节或8位数据表示。
虽然人们使用许多不同语言制作了数量日益增多的软件和硬件装置,但许多现有计算机系统和应用程序依旧只支持8位字符。因此开发了将字符译成8位格式的转换格式。UTF-8是为支持多语言文本而开发的可变宽度或“多字节”编码格式的例子。在UHF-8中,标准ASCII字符只用一个以“0”开头的字节表示。然而,非ASCII字符则需要2个或者甚至3个字节。UTF-8多字节字符的第一字节指的字符中字节的总数。例如,一个两字节字符的第一字节具有高部位“110”,而三字节字符的第一字节则以“1110”开头。所有多字节字符的其他字节均以“10”开关。
象UTF-8那样,多字节字符的编码系统要求较少的位来存储和传送,但对某些应用程序却存在一些困难。一个理由是Web服务器在处理HTTP请求时使用数据串的长度。写成HTTP请求的应用程序典型地执行确定长度的标准功能。然而,标准功能典型地假定,该数字串仅含用ASCII编码的信息,且数字串长度等于消息(message)的长度,后者对用标准ASCII字符进行编码的串而言是真的。然而,对于可变长度的用UTF-8编码的串而言,在被传输的数据串中字节数将往往不同于消息的长度。所以标准功能返回一不正确的长度,它在Web服务器中进行处理时产生差错。
因此,需要一种在网络中传输多字节字符的方法,即使当采用象UTF-8一类可变长度的编码方案时,它也把准确的数据串长度传送给服务器。
与本发明相容的方法和系统将每个输入串的固定长度的字符转换成多字节字符。它们在确定相应于多字节字符所长度,并且用多字节字符传输该长度。
正如这里具体实施和概括地加以描述的那样,按照本发明用以在网络中在客户机和服务器之间传输数据的装置包括构造来接收一组固定长度字符的部件;构造来转换每个固定长度字符为多字节字符的部件;构造来确定相应用于多字节字符的长度的部件;以及构造来传输该长度和多字节字符的部件。
正如这里具体实施并概括地加以描述的那样,按照本发明的另外一方面,一种计算机程序产品包括具有在那里加以实施的可计算、可读取代码的计算机可用媒体,用以在网络中在客户机和服务器之间传输数据,该计算机程序产品包括由处理器执行的下述诸步骤接收一组固定长度;把每个固定长度的字符转换成多字节字符;确定相应于多字节字符的长度;以及传输该长度和多字节字符。
正如这里具体实施并概括地加以描述的那样,按本发明的又一个方面,一种用以在网络中传输数据的系统包括接收一组固定长度字符的接收机;把每个固定长度的字符转换成多字符的的第一处理器;确定相应于多字节字符长度的第二处理器;以及传输该长度和多字节字符的发射机。
包括进并构成本说明书一部分的附图连同叙述一起用来说明本发明的优点和原理。


图1是说明适合与本发明一起使用的计算机结构的示意框图;图2是和本发明相容的方法的图解说明;以及图3是由和本发明相容的处理器执行的步骤的流程图。
与本发明相容的系统和方法能在网络中把将一组固定长度的字符作为多字节字符传输。首先把一组固定长度的字符转换成多字节字符。每个多字节符由可变的字节数来表示。在转换步骤期间,根据多字节字符串中字节数来确定多字节字符串的长度。该长度作为含有该多字节字符串的消息的消息首标的一部分经过网络传输。
可采用硬件、软件或硬件和软件的组合来实施本发明。具体而言,本发明可以用如Java和C++等面向结果的编程语言以及非面向结果的编程语言来实施。
现将详细叙述与本发明相容的一系统的例示的实现,并且结合附图加以说明。叙述包括诸例示的实施例,其他的实施例也是可能的,且可对所述实现加以更改而不偏离本发明的精神和范畴。在所有的附图中,无论是哪张图都把相同的标号用于指出同一或相似的部分。
与本发明相容的方法和系统在例如由多个单机种或多机种机器构成的分布系统中运行。一例示的分布系统10示于图1中。客户机100是一台常规计算机,它包括总线102或其他用以传递信息的通信机构;以及与总线102相耦合的处理器104,它用以处理信息和执行应用程序。客户机100也包括耦合到总线102和主存储器(诸如随机存取存储器(RAM)106或其他动态存储装置),用以存储信息以及要由处理器104执行的指令。RAM106也可在执行要由处理器104执行的指令期间存储临时变量或其他中间信息。客户机100进一步包括耦合于总线102的只读存储器(ROM)108或其他静态存储装置,用以为处理器存储静态信息和指令。备有诸如磁盘或光盘之类的存储装置110,并耦合到总线102,用以存储信息和指令。
客户机100可以经由总线102耦合至诸如阴极射线管(CRT)等显示器112,用以向计算机用户显示信息。将包括字母数字和其它键在内的输入装置114耦合至总线102,用以把信息和指令选择传递给处理器104。另一种类型的用户输入装置是诸如鼠标、跟踪球或光标方向键之类的光标控制116,用以把方向信息和命令选择传递给处理器104,并且用以在显示器112上控制光标移动。这种输入装置典型地具有沿第一轴(例如X轴)和第二轴(例如Y轴)这两个轴的两个自由度,这允许该装置规定平面上特定的位置。
与本发明相容的方法和系统使用客户机100在网络由传输多字节字符。与一实施相容,客户机100的处理器104执行包含在主存储器106中的一条或多条指令的一个或多个序列。这些指令可从诸如存储装置110等另一种计算机可读取媒体读入主存储器106。执行包含在主存储器106中的指令序列使处理器104完成这里所述的诸处理步骤。在另一实现中,可采用硬连线电路代替或与软件指令相组合来实施本发明。因此,本发明的实施并不限于任何硬件电路和软件的具体组合。
这里所用的术语“计算机可读媒体”是指参与提供指令给处理器104供其执行的任何媒体。这样的媒体可取许多形式,包括(但不限于)非易失性媒体、易失性媒体和传输媒体。非易失性媒体例如包括光盘或磁盘,诸如存储装置110。易失性媒体包括动态存储器,诸如主存储器106。传输媒体包括同轴电缆、铜线和光纤,包括构成总线102的导线。传输媒体也可取声波或光波形式,诸如在无线电波和红外数据通信期间所产生的那些。
计算机可读媒体的通用形式例如包括软磁盘(floppy disk)、软磁盘(flexibledisk)、硬盘、磁带、或任何其他磁性媒体、CD-ROM、任何其他光学媒体、穿孔卡、纸带、任何带有小孔图案的其他物理媒体、RAM、PROM和EPROM、快速(FLASH-)EPROM、任何其他存储芯片或盒式磁带(cartridge)、载波或者任何计算机能从中读取的其他媒体。
在携带一个或多个指令的一个或多个序列给处理器104供其执行方面,可以包含各种形式的计算机可读媒体。例如,开始可携带该指令于远地计算机的磁盘上。远地计算机可将指令装入其动态存储器,并用调制解调器经电话线路送出指令。置于客户机100中的调制解调器可接收在电话线上的该数据,并且红外发射器转换此数据为红外信号。耦合至总线102的红外探测器可接收此在红外信号中携带的数据,并置此数据于总线102上。总线102传递此数据至主存储器106,处理器104就从中检索并执行该指令。由主存储器106接收到的指令可以或者在处理器104执行之前或者之后可选地存储在存储装置110中。
客户机100也包括耦合至总线102的通信接口118。通信接口118提供双向数据通信,耦合至连至本地网122的网络链路120上。例如,通信接口118可以是综业务数字网(ISDN)卡或调制解调器,以提供数据通信接续至相应类型的电话线路。作为另外的例子,通信接口118可以是局域网(LAN)卡,提供数据通信接续至相容的LAN。也可实现无线电链路。在任何这样一种实现中,通信接口118发送和接收电、电磁或光信号,这些信号携带代表各种信息类型的数字数据流。
网络链路120典型地经一个或多个网络提供数据通信至其他数据装置。例如,网络链路120可以提供经本地网络122至主计算机124的连接,和/或由互联网服务提供器(ISP)126运行的数据装置。ISP126又通过互联网128提供数据通信业务。本地网络122和互联网128两者均使用携带数字数据流的电、电磁或光信号。经各种网络的信号和在网络链路120上和经由通信接口118的信号(它们携带数据进出客户机100)均为传送信息的载波的例示形式。
客户机100可以经由网络、网络链路120和通信接口118发送消息和接收数据,包括程序代码。在互联网例子中,服务器130可经过互联网128、ISP126、本地网络122和通信接口118传送应用程序的请求代码。按照一实现,一个这样下载的应用程序确定多字节字符串的长度,并在网络中传送它们,正如这里所述的那样。接收到的代码,可在其被接收后即由处理器104执行,和/或存储在存储装置110或其他非易失性存储装置内以供其在以后执行。用这种方式,客户机100可获得载波形式的应用程序代码。
虽然客户机100作为可连至一个服务器130而示于图1,但那些熟悉本领域的人将认识到,客户机100可以在互联网128上建立多个服务器的连接。
图2说明相容于本发明的应用程序的操作。Web浏览器220是典型地向用户显示信息的软件程序,这种程序例如可以是带有空白数据区的形式。Web浏览器220接收来自用户的输入信息,并使之转换为数据串,用以经网络传递给服务器。HTTP是适用于网络中进行通信的数据格式的一个例子。
为发送HTTP请求,Web浏览器传递数据串至插口(socket)225,它是起Web浏览器220和网络链路120的传递协议之间的通信接口作用的应用程序。该网络传送协议例如可以是TCP/IP。插口225传送HTTP请求经网络链路120而至服务器130。服务器软件285接收该HTTP请求,并检索此被请求的信息。
图3包括装入Web浏览器220以在网络中传送多字节字符的诸步骤的流程图。该过程以图2所示的Web浏览器220起始。一开始,Web浏览器220显示输入形式(步骤305)。用户用输入装置114输入将经过网络传输的信息(步骤310)。使用上述Name View应用程序的例子,一日本用户例如可以输入某人的名字,他们希望从置于服务器130的目录数据库280中寻找出该人的轮廓。用户使用标准的日文字符输入名字。除了由用户提供的信息外,输入形式的内容均事先加以格式化。当用户指出,输入形式例如已由“敲击”一下在屏幕上显示的按钮而完成时,Web浏览器220获取由用户输入的信息,并用标准编码格式把输入信息编码成数字形式。根据用户的地点和语言,可将输入信息编码成诸如单一码之类的16位字符编码系统(步骤320)。结果是以数字格式表示被输入信息的数据串。
为产生UTF-8格式的HTTP请求,Web浏览器220将把该数据由其现有格式转换成UTF-8,并经网络传送该UTF-8数据串和HTTP请求首标。HTTP请求首标典型地含有以下信息,即服务器130要求准确地把伴随的数据串分解成字节,用以理解HTTP请求。有效的HTTP首标例如包括输出流的内容类型、通知Web浏览器所附文本何时不再有效的到期日,以及伴随数据串的字节长度。
一种取得消息长度的方法是执行一应用程序,它转换数据串成UTF-8编码字符。当字符正被转换时,转换至UTF-8字符用的标准程序保持对信息长度的跟踪。然而,在整个串被转换之前,实际的信息长度是得不到的。所以,在相符于本发明的实现中,在把数据串写至插口(步骤320)之前,完成UTF-8转换。UTF-8格式转换步骤返回一指明多字节数据串长度的变量(步骤320)。Web浏览器220产生HTTP请求首标,后者包括多字节数据串的长度(步骤325)。然后用转换至UTF-8格式(步骤320)的写入方法将数据串写至HTTP请求的本体(步骤330)。最后,将此HTTP请求首标和伴随的多字节数据串传送给服务器130(步骤340)。Web浏览器220也可把HTTP请求首标和伴随的多字节数据串封装入面向结果的程序,并通过网络连接发送此程序。
按本发明,实施本发明的应用程序可在网络中传送多字节字符。该应用程序把一组固定长度的字符转换成UTF-8格式以获得长度。该消息长度作为在HTTP请求首标中的输入变量加以使用,并与多字节字符串一起传送给Web服务器。
业已给出实施本发明的以上描述,旨在说明和描述。它不是穷举的因而不限制本发明于所揭示的确切形式。按照以上的教导,更改和变化是可能的,也可以本发明的实践中加以获得。例如,所述实现包括软件,但本发明可以作为硬件和软件的组合或者单用硬件加以实现。本发明的范围由权利要求书及其等效物加以限定。
权利要求
1.一种在网络中传送数据的方法,其特征在于包含由处理器加以完成的下述步骤接收一组固定长度的字符;把每个所述固定长度的字符转换成多字节字符;确定相应于所述多字节字符的长度;以及传输所述长度和所述多字节字符。
2.如权利要求1所述的方法,其特征在于确定的步骤包括通过把数据串转换成UTF-8编码格式来确定所述多字节字符串长度的步骤。
3.一种在网络中在客户机和服务器之间传送数据的装置,其特征在于包括构造来接收一组固定长度字符的部件;构造来转换每个所述固定长度字符成多字节字符的部件;构造来确定相应于所述多字节字符长度的部件;以及构造来传送所述长度和所述多字节字符的部件。
4.如权利要求3所述的装置,其特征在于构造来确定的部件包括借助于把数据串转换成UTF-8编码格式而构造来确定所述多字节符串长度的部件。
5.一种计算机程序产品,其特征在于包括计算机可用媒体,具有留在其中的可计算、可读代码,用以在网络中在客户机和服务器之间传送数据,该程序产品包括由处理器完成的下述步骤接收一组固定长度的字符;把每个所述固定长度的字符转换成多字节字符;确定相应于所述多字节字符的长度;以及传送所述长度和所述多字节字符。
6.如权利要求5所述的计算机程序产品,其特征在于构造来确定的部件包括借助于把数据串转换成UTF-8编码格式而构造来确定所述多字节字符串长度的部件。
7.一种在网络中传送数据的系统,其特征在于包括用以接收一组固定长度字符的接收机;用以把每个所述固定长度字符转换成多字节字符的第一处理器;用以确定相应于所述多字节字符长度的第二处理器;以及用以传送所述长度和所述多字节字符的发射机。
8.如权利要求7所述的系统,其特征在于所述第二处理器包括借助于把数据串转换成UTF-8编码格式而来确定所述多字节字符长度的处理器。
全文摘要
按照本发明,用以在网络中传送多字节字符的方法和系统包括由处理器完成的下述步骤:接收一组固定长度的字符;把每个固定长度的字符转换成多字节字符;以及传送该长度和该多字节字符。
文档编号G06F15/16GK1242551SQ99107178
公开日2000年1月26日 申请日期1999年6月4日 优先权日1999年6月4日
发明者斯图尔特·托德·雷德 申请人:太阳微系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1