У меня есть этот код:UTF-8 кодировка в Java
BufferedWriter w = Files.newWriter(file, Charsets.UTF_8);
w.newLine();
StringBuilder sb = new StringBuilder();
sb.append("\"").append("éééé").append("\";")
w.write(sb.toString());
Но это не работает. В конце мой файл не кодирует UTF-8. Я пытался сделать это при написании:
w.write(new String(sb.toString().getBytes(Charsets.US_ASCII), "UTF8"));
Он сделал вопросительные знаки появляются везде в файле ...
я обнаружил, что там была ошибка относительно признания первоначальной спецификации charcater (http://bugs.java.com/view_bug.do?bug_id=4508058), так Я попытался использовать класс BOMInputStream. Но bomIn.hasBOM()
всегда возвращает false, поэтому я думаю, что моя проблема не связана с BOM?
Вы знаете, как я могу сделать свой файл закодированным в UTF-8? Была ли проблема решена в Java 8?
Мне трудно понять, какова ваша фактическая проблема. Пожалуйста, покажите реальный код, ввод и вывод. UTF-8 отлично работает на Java и, конечно же, 'sb.toString(). GetBytes (Charsets.US_ASCII)' будет выдавать много вопросительных знаков, так как US_ASCII поддерживает только символы 0 .. 127, все остальное недействительно и заменяется на вопросительный знак. Также запрещается использование спецификации с UTF-8. –
Уверен, что он работает. С созданным «BufferedWriter» вы можете просто сделать w.write («Hello, äöå»); w.close(); 'и я гарантирую, что файл будет кодироваться в кодировке UTF-8. – Kayaman
«Это заставило знаки вопроса появляться повсюду в файле ...» - так что проблема в том, где вы просматриваете файл. – Gimby