Bu kodu vardır:Java'nın UTF-8 kodlaması
BufferedWriter w = Files.newWriter(file, Charsets.UTF_8);
w.newLine();
StringBuilder sb = new StringBuilder();
sb.append("\"").append("éééé").append("\";")
w.write(sb.toString());
Ama işe almaktadır. Sonunda benim dosyamda bir UTF-8 kodlaması yok. Ben, bu yüzden ilk BOM charcater (http://bugs.java.com/view_bug.do?bug_id=4508058) tanınması konusunda bir hata olduğunu tespit
...
w.write(new String(sb.toString().getBytes(Charsets.US_ASCII), "UTF8"));
Bu soru işaretleri dosyasında her yerde görünür yaptı: yazarken bunu yapmak çalıştı BOMInputStream sınıfını kullanmayı denedim. Ama bomIn.hasBOM()
her zaman false döndürür, bu yüzden sorunum BOM ile ilgili olmayabilir sanırım?
Dosyamı UTF-8'de nasıl kodlandırabilirim biliyor musunuz? Sorun Java 8'de çözüldü mü? görüntüleyici veya aracı o değil dosyasını görüntülemek için kullanmakta olduğunuz
sorundur (eğer yedek olarak String bir dize oluştururken rağmen) Eğer ilk örnekte doğru UTF-8 yazıyoruz
Asıl sorununun ne olduğunu anlamakta zorlanıyorum. Lütfen gerçek kodu, girişi ve çıkışı gösterin. UTF-8, Java'da gayet iyi çalışıyor ve tabii ki 'sb.toString(). GetBytes (Charsets.US_ASCII)' birçok soru işareti üretecek, çünkü US_ASCII yalnızca 0 karakterleri destekliyor .. 127, her şey geçersiz ve bir soru işareti. Ayrıca UTF-8 ile BOM kullanımı önerilmez. –
Elbette işe yarıyor. 'BufferedWriter' ile oluşturduğunuzda, w.write ("Merhaba, äöå"); w.close(); 've ben dosyanın UTF-8 kodlu olacağını garanti ediyorum. – Kayaman
"Dosyada her yerde soru işaretleri belirdi ..." - bu nedenle sorun aslında dosyayı görüntülediğiniz yerdedir. – Gimby