2009-06-17 17 views

Odpowiedz

5

Będzie zależny od lokalizacji. Różne ustawienia regionalne, różne domyślne kodowanie.

+0

Więc to zależy od kodowania system operacyjny hosta? –

81

Domyślnym zestawem znaków JVM jest system, na którym działa. Nie ma żadnej konkretnej wartości i nie powinieneś zasadniczo polegać na domyślnym kodowaniu będącym jakąś szczególną wartością.

To mogą być dostępne w czasie wykonywania przez Charset.defaultCharset(), jeśli to każde użycie do Ciebie, choć tak naprawdę należy zrobić punkt kodowaniem zawsze określającej wyraźnie kiedy można to zrobić.

+5

Jeśli masz rację, uważam to za nieco dziwne http://java.sun.com/javase/technologies/core/basic/intl/faq.jsp#text-representation mówi, że zawsze jest to UTF-16. –

+30

UTF-16 to sposób, w jaki tekst jest reprezentowany wewnętrznie w JVM. Domyślne kodowanie określa, w jaki sposób JVM interpretuje bajty odczytane z plików (używając na przykład 'FileReader'). – JesperE

+6

Ta odpowiedź jest poprawna, ale dla odniesienia, w Linuksie zwykle jest to "UTF-8", aw Windowsie to zwykle "cp1252". – Jeutnarg

24

Należy pamiętać, że można zmienić domyślne kodowanie maszyny JVM, używając do tego nazwy o zmyśleniu o nazwie file.encoding.

Jeśli twoja aplikacja jest szczególnie wrażliwa na kodowanie (być może za pomocą interfejsów API implikujących domyślne kodowanie), powinieneś jawnie ustawić to na starcie JVM na spójną (znaną) wartość.

+14

Należy zauważyć, że 'file.encoding' musi być określone podczas uruchamiania JVM (to jest jako parametr cmdline -Dfile.encoding lub przez JAVA_TOOLS_OPTIONS); możesz ustawić go w czasie wykonywania, ale nie będzie to miało znaczenia. Zobacz http://stackoverflow.com/questions/361975/setting-the-default-java-character-encoding – sleske

19

Istnieją trzy "default" kodowania:

  • file.encoding:
    System.getProperty("file.encoding")

  • java.nio.Charset:
    Charset.defaultCharset()

  • I kodowanie InputStreamReader:
    InputStreamReader.getEncoding()

Możesz przeczytać więcej na ten temat na this page.

Powiązane problemy