解码方法及解码装置的制造方法_5

文档序号:9528010阅读:来源:国知局
元20中所保障的读缓冲器中。例如,当调用指定文件F1的解码和转换处理时,文件读单元11从文件F1中读取编码数据。文件读单元11将所读出的编码数据存入读缓冲器中。当执行解码和转换处理的调用时,文件读单元11获得用在传输目的地处的字符码系统。
[0104]编码码确定单元12在读缓冲器中的要读出的位置处读出编码数据并且确定包括在所读出的编码数据中的标识符。例如,编码码确定单元12确定包括在要读出的位置处的编码码中的标识符是否为表示该编码码不基于最长匹配数据的标识符或者确定该标识符是否为表示该编码码基于最长匹配数据的标识符。例如,如果编码码是“0bE2h”,则由于包括在编码码的头部中的标识符为“0”,所以确定该标识符是表示编码码不基于最长匹配数据的标识符。在另一示例中,如果编码码是“ Ib0000h05h”,则由于包括在编码码的头部中的标识符为“ 1 ”,所以确定该标识符是表示编码码基于最长匹配数据的标识符。
[0105]如果确定标识符是表示编码数据不基于最长匹配数据的标识符,则单字符解码单元13对编码码的一个字符进行解码。例如,如果确定标识符为“0”,则单字符解码单元13对包括在编码码中的字符码自身进行解码。例如,如果编码码为“0bE2h”,则获得“E2h”作为解码码。
[0106]如果确定标识符是表示编码码基于最长匹配数据的标识符,则最长匹配字符串解码单元14执行基于编码码来执行至最长匹配字符串的解码。例如,如果确定标识符为“1”,则最长匹配字符串解码单元14基于包括在编码码中的最长匹配数据的数据长度和关于最长匹配数据的位置的信息从参考位置中读出字符码串。例如,如果编码码为“ Ib0000h05h”,则从参考部中的位置“OOOOh”中读出对应于数据长度“05h”的字符码串。
[0107]参考部更新单元15将由单字符解码单元13所解码的一个字符的字符码存入参考部并且更新参考部。参考部更新单元15将由最长匹配字符串解码单元14解码了的字符码串存入参考部并且更新该参考部。
[0108]中间解码部更新单元16更新中间解码部。例如,中间解码部更新单元16将由单字符解码单元13解码了的一个字符的字符码存入中间解码部并且更新中间解码部。另外,中间解码部更新单元16将由最长匹配字符串解码单元14解码了的字符串存入中间解码部并且更新中间解码部。另外,中间解码部更新单元16基于中间解码部的头字节从对应表22中获得字符长度。另外,中间解码部更新单元16确定存储在中间解码部中的解码数据的长度是否等于或大于字符长度。如果确定存储在中间解码部中的解码数据的长度等于或大于字符长度,则中间解码部更新单元16检测字符的末尾并且将与来自中间解码部的头部的字符长度对应的解码数据视为要转换的对象。如果确定存储在中间解码部中的解码数据的长度为不等于或大于字符长度,则中间解码部更新单元16不能检测字符的末尾并且进行下一编码码的解码处理。
[0109]字符码转换单元17对解码数据的字符码进行转换。例如,字符码转换单元17基于被中间解码部更新单元16视为要转换的对象的解码数据的字符码,从字符码转换表21中获得转换目的地的字符码系统的字符码。字符码转换单元17将所获得的字符码转换成字符码转换部分。
[0110]写缓冲器更新单元18将由字符码转换单元17转换为转换数据的字符码存入写缓冲器并且更新写缓冲器。例如,写缓冲器更新单元18在存储在写缓冲器中的字符码之后存储这次转换了的字符码。
[0111]文件写单元19将存储在写缓冲器中的转换后的转换数据写入文件F2中。因此,虽然逐字节地进行解码,但是由于解码装置1识别出解码数据中的字符的末尾,执行对达到字符的末尾的解码数据的字符码转换并且将其存入写缓冲器中,所以能够减少用于累积解码数据的存储区域。另外,由于解码装置1能够实现字符码转换处理,而不将所有解码数据累积在存储区域中并且从存储区域中读出解码数据,从而能够缩短处理时间。
[0112]字符码转换表的数据配置
[0113]接下来,参照图7,将描述字符码转换表的数据配置。图7是示出了字符码转换表21的数据配置的示例的图。如图7所示,字符码转换表21将UTF-8的字符码21a与ShiftJIS的字符码21b相关联地进行存储。UTF-8的字符码为字符码的数据串,每个字符码对应于UTF-8字符码系统的一个字符。Shift JIS的字符码21b为字符码的数据串,每个字符码对应于Shift JIS字符码系统的一个字符。例如,如果字符为“ + ”,则将作为UTF-8的字符码21a的“E2BC98h”和作为Shift JIS的字符码21b的“8F5Ch”存储于其中。在图7的示例中,字符码转换表21中具有彼此相关联的UTF-8的字符码和Shift JIS的字符码,但不限于此,任何不同的字符码系统可以在其中彼此相关联。
[0114]解码和转换处理的流程图
[0115]接下来,将参照图8来描述解码和转换处理的序列。图8是示出了解码和转换处理的流程图的图。
[0116]首先,通过对解码装置1中的操作系统和应用程序的操作,调用解码和转换处理。当调用解码和转换处理时,控制单元10执行预处理(步骤S11)。例如,控制单元10保障图4A所示的存储区域A1至A4以及存储区域B1和B2。另外,控制单元10将每个位置信息设置在每个存储区域中(例如,图4A所示的每个指针)。在以下描述中,例如将存储区域A1至A4分别称为编码部、参考部、中间解码部和字符转换部。例如将存储区域B1和B2分别称为读缓冲器和写缓冲器。例如将指针PB1、PB2和PA2分别称为写指针、读指针和尾指针。
[0117]文件读单元11将存储在文件F1中的编码数据读出至读缓冲器(步骤S12)。
[0118]编码码确定单元12从读缓冲器中读出下一编码码(步骤S13)。例如,编码码确定单元12从读缓冲器中、在由读指针所指向的要读取的位置处读出编码码。编码码确定单元12确定所读出的编码码的标识符是否是表示编码码不基于最长匹配数据的标识符(“0”)(步骤S14)。
[0119]如果标识符为“0” (步骤S14 ;是),则单字符解码单元13读出包括在所读出的编码码中的一个字符的字符码。参考部更新单元15将所读出的字符码存入参考部(步骤S15)。然后解码和转换处理进行至步骤S18。
[0120]相反地,如果标识符不为“0”(步骤S14;否),则最长匹配字符串解码单元14基于包括在所读出的编码码中的数据长度和位置,对最长匹配字符串进行解码(步骤S16)。例如,最长匹配字符串解码单元14从参考部中的位置读出对应于数据长度的字符码串,并且对最长匹配字符串进行解码。然后参考部更新单元15将所解码的最长匹配字符串的字符码存入参考部中(步骤S17)。然后解码和转换处理进行至步骤S18。
[0121]在步骤S18处,中间解码部更新单元16将字符码存入中间解码部并且设置字符码的存储长度(步骤S18)。例如,中间解码部更新单元16将由单字符解码单元13所解码的一个字符的字符码存入中间解码部并且更新中间解码部。中间解码部更新单元16将由最长匹配字符串解码单元14解码了的最长匹配字符串的字符码存入中间解码部并且更新中间解码部。然后中间解码部更新单元16将存储在中间解码部中的字符码的长度设置为存储长度并且将该存储长度设置到主区域中。然后中间解码部更新单元16更新读缓冲器的读指针的内容以及参考部的尾指针的内容。
[0122]随后,中间解码部更新单元16基于中间解码部中的头字节来确定字符长度(步骤S19)。例如,中间解码部更新单元16基于中间解码部中的头字节,从对应表22中获得字符长度。例如,如果字符码系统为UTF-8,则当头字节为“E3”时,从对应中获得表示字符长度为三个字节的“3”。
[0123]中间解码部更新单元16确定存储长度是否等于或大于字符长度(步骤S20)。如果存储长度不等于或大于字符长度(步骤S20 ;否),则字符码转换单元17进行至步骤S13以处理下一编码码。
[0124]相反地,如果存储长度等于或大于字符长度(步骤S20 ;是),则字符码转换单元17基于与中间解码部中的字符长度对应的字符串的字符码来执行至转换目的地的字符码系统的字符码的转换(步骤S21)。例如,字符码转换单元17基于与来自中间解码部的头部的字符长度对应的字符码,从字符码转换表21中获得转换目的地的字符码系统的字符码串。然后,字符码转换单元17将所获得字符码串存入字符转换部中。
[0125]写缓冲器更新单元18将存储在字符转换部中的字符码串存入写缓冲器中并且更新写缓冲器(步骤S22)。例如,写缓冲器更新单元18在已经存储在写缓冲器中的字符码串之后对存储在字符转换部中的字符码串进行存储。
[0126]写缓冲器更新单元18将存储在中间解码部中的字符串的字符码串向左移动完成转换了的字符长度(步骤S23)。写缓冲器更新单元18从当前设置在主区域中的存储长度减去字符长度以计算新的存储长度(步骤S24)。S卩,写缓冲器更新单元18计算存储在中间解码部中的字符码的长度作为存储长度。
[0127]随后,编码码确定单元12确定是否处理了所有的编码码(步骤S25)。如果确定了尚未处理所有的编码码(步骤S25 ;否),则编码码确定单元12进行至步骤S13以处理下一编码码。
[0128]相反地,如果确定处理了所有的编码码(步骤S25 ;是),则文件写单元19将存储在写缓冲器中的转换数据写入文件F2(步骤S26)。从而,解码和转换处理结束。
[0129]实施方式的效果
[0130]根据上述实施方式,当在未识别出字符的末尾的情况下对编码码串进行解码时,解码装置1将通过对码串中的码进行解码而获得的数据串累积进中间解码部中。当在累积在中间解码部中的数据串中识别出第一字符码的字符时,解码装置1将所识别的字符的数据串转换成第二字符码的数据串。根据该配置,解码装置1在未识别出字符的末尾的情况下对编码码进行解码,但是由于来自通过解码而
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1