我有结构如下一个UTF8文件的以下问题:的Java解析UTF8
FIELD1§FIELD2§FIELD3§FIELD4
看着它采用A7
编纂该文件的十六进制值§
。所以根据这个编码它应该是UTF8,但它很奇怪,因为A7
>7F
所以1个字节不应该足以编码§
。
于是,我就直接使用一个BufferedReader
与指定的字符集:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(input), utf8))
但是当我尝试
SmartTokenizer st = new SmartTokenizer(toTokenize, "§")
(在SmartTokenizer
来标记字符串是StringTokenizer
的修改版本,保留空标记)
不发生分裂,如果我尝试打印字符串,我获得
FIELD1?FIELD2?FIELD3?...
所以在文件中使用§
是从指定为分隔符的不同,它不是能够打印出这一点。
那么这里有什么问题?也许原始文件应该使用2个字节来存储§
?
是的,我试图在标准等之间进行转换后,我正在寻找错误的方向..我只是告诉BufferedReader根据ISO-8859-1字符集阅读..谢谢! – Jack 2010-04-06 17:03:01