У меня есть следующий вопрос с 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 charset .. спасибо! – Jack