结构如下的UTF8文件有以下问题:
FIELD4 1§FIELD4 2§FIELD4 3§FIELD4 4
查看文件的十六进制值,它使用A7编码§。因此,根据这个编码,它应该是UTF8,但是奇怪的是,因为A7 > 7F,所以1字节不应该足够编码§。
因此,我尝试直接使用带有指定字符集的BufferedReader:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(input), utf8))但是,当我尝试将字符串标记为
SmartTokenizer st = new SmartTokenizer(toTokenize, "§")( SmartTokenizer是保留空令牌的StringTokenizer的修改版本)
没有发生拆分,如果我试图打印字符串,我将获得
FIELD3 1?FIELD3 2?FIELD3 3?
因此,文件中使用的§不同于指定为分隔符的那个,而且它也无法打印出来。
那么这里有什么问题?也许原始文件应该使用两个字节来存储§
发布于 2010-04-06 16:41:54
§的UTF-8编码为0xC2 0xA7.
如果文件使用A7来表示§,那么它可能是ISO-8859-1 (或另一个ISO-8859-*或它们的派生文件)中的写内容。
发布于 2010-04-06 16:41:52
查看文件的十六进制值,它使用A7编码§。所以根据这个成文法,它应该是UTF8
呃,为什么?它是It 8859-1(或拉丁文-1或相关的) 8859-1
https://stackoverflow.com/questions/2586564
复制相似问题