Akışı doğru karakter kodlamasını belirlemek için Nasıl Java :
Aşağıdaki referansla konu: http://stackoverflow.com/questions/498636/java-app-unable-to-read-iso-8859-1-encoded-file-correctly
Programlama yoluyla inputstream/dosyasının doğru karakter kodlamasını belirlemek için en iyi yolu nedir ?
Aşağıdaki kullanarak denedim:
File in = new File(args[0]);
InputStreamReader r = new InputStreamReader(new FileInputStream(in));
System.out.println(r.getEncoding());
Ama hangi dosya biliyorum bilgisi İSO8859_1 yukarıdaki kod verir ASCII olmayan doğru ve izin vermez bana doğru oluşturma içerik dosyası arka konsol.
CEVAP
Edemiyor rasgele bayt akışı kodlamasını belirler. Bu kodlamalar doğasıdır. Bir kodlama bayt bir değer ve onun temsili arasında bir eşleme anlamına gelir. Yani her "acaba" olacak. kodlama
getEncoding() yöntemini ayarlayın (JavaDoc bilgi) akışı için olan kodlama dönecektir. Sizin için kodlama sanırım.
Bazı akışları kodlama onları oluşturmak için kullanılan söyleyeyim: XML, HTML. Ama rasgele bayt akışı.
Her neyse, eğer varsa kendi başına bir kodlama olduğunu tahmin etmek deneyebilirsiniz. Her dil, her char için ortak bir frekansı vardır. İngilizce char e çok sık görünür ama ê çok çok nadiren görünür. ISO-8859-1 akışı genellikle 0x00 karakter yok. Ama UTF-16 akış onları bir yeri vardır.
Veya: kullanıcı sorabilirsiniz. Zaten farklı kodlamalar dosyasının bir parçacık bulunmayan uygulamalar gördüm ve "" tek. doğru seçmek için sor
Nasıl pi benim hesaplama doğru olup ol...
Java nasıl bir dize bir karakter dönüş...
Nasıl bir nesne's sınıfı (Java) b...
HttpUtility gibi Java HTML karakter va...
Nasıl bir Dizi için Java 8 Akışı Dönüş...