Подтвердить что ты не робот

Какова стандартная кодировка JVM?

Является ли UTF-8 кодировкой по умолчанию в Java?
Если нет, как я могу узнать, какая кодировка используется по умолчанию?

4b9b3361

Ответ 1

Набор символов по умолчанию для JVM - это система, в которой он работает. Для этого нет специального значения, и вы не должны обычно зависеть от кодировки по умолчанию, являющейся любым конкретным значением.

Доступ к нему можно получить во время выполнения через Charset.defaultCharset(), если это вам пригодится, хотя на самом деле вы должны сделать так, чтобы явным образом указывал кодировку, когда вы можете это сделать.

Ответ 2

Обратите внимание, что вы можете изменить кодировку по умолчанию JVM, используя свойство confusingly named file.encoding.

Если ваше приложение особенно чувствительно к кодировкам (возможно, с использованием API-интерфейсов, подразумевающих кодировки по умолчанию), тогда вы должны явно указать это при запуске JVM на согласованное (известное) значение.

Ответ 3

Существует три кодировки по умолчанию:

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

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

  • И кодировка InputStreamReader:
    InputStreamReader.getEncoding()

Подробнее об этом можно узнать на этой странице.

Ответ 4

Я уверен, что это конкретная реализация JVM, но я смог "повлиять" на мой файл jvm default.encoding, выполнив:

export LC_ALL=en_US.UTF-8

(запуск java-версии 1.7.0_80 на Ubuntu 12.04)

Кроме того, если вы наберете "locale" из своей консоли unix, вы должны увидеть там больше информации.

Всем кредитуется http://www.philvarner.com/2009/10/24/unicode-in-java-default-charset-part-4/

Ответ 5

Он будет зависящим от языка. Различная локаль, различная кодировка по умолчанию.

Ответ 6

Вы можете использовать это, чтобы распечатать настройки по умолчанию JVM

import java.nio.charset.Charset;
import java.io.InputStreamReader;
import java.io.FileInputStream;

public class PrintCharSets {
        public static void main(String[] args) throws Exception {
                System.out.println("file.encoding=" + System.getProperty("file.encoding"));
                System.out.println("Charset.defaultCharset=" + Charset.defaultCharset());
                System.out.println("InputStreamReader.getEncoding=" + new InputStreamReader(new FileInputStream("./PrintCharSets.java")).getEncoding());
        }
}

Скомпилировать и запустить

javac PrintCharSets.java && java PrintCharSets

Ответ 7

Чтобы получить настройки java по умолчанию, используйте:

java -XshowSettings