У меня следующая проблема с файлами UTF8, структурированными следующим образом:
FIELD1§FIELD2§FIELD3§FIELD4
Просмотр шестнадцатеричных значений используемого файлаA7
для кодификации §
.Таким образом, согласно этой кодификации это должен быть UTF8, но это странно, потому что A7
> 7F
, поэтому одного байта не должно быть достаточно для кодификации §
.
Поэтому я попытался использовать BufferedReader
с указанным набором символов:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(input), utf8))
, но когда я пытаюсь токенизировать строку с
SmartTokenizer st = new SmartTokenizer(toTokenize, "§")
(SmartTokenizer
является модифицированной версией StringTokenizer
, которая содержит пустые токены)
разделения не происходит, и если я пытаюсь напечатать строку, я получаю
FIELD1? FIELD2? FIELD3? ...
так §
, используемый в файле, отличается от указанного в качестве разделителя, и он также не может распечатать его.
Так в чем здесь проблема?Может быть, оригинальный файл должен использовать 2 байта для хранения §
?