java encoding 순서
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());
1. jvm 옵션(OS 환경변수보다 최우선시 적용)
- java -Dfile.encoding=euckr
2. env LC_ALL
- LC_ALL 이 설정되어 있으면 LC_CTYPE 값도 LC_ALL 값으로 덮어써진다.
3. env LC_CTYPE
- LC_ALL 이 설정 안되어 있으면 개별로 설정된 LC_CTYPE 적용.
4. env LANG
- LC_ALL 과 LC_CTYPE 이 설정되어 있지 않다면 LC_ALL 을 제외한 나머지 LC_* 값은 LANG 값으로 덮어써진다.
- 따라서, LC_CTYPE 은 LANG 값과 같아진다.
결국 linux 에서는 jvm 옵션을 설정하지 않으면 locale 명령어의 결과 중 LC_CTYPE 값이 적용된다고 보면 된다.
'프로그래밍 > Java' 카테고리의 다른 글
Java Stream 설명 (0) | 2023.05.26 |
---|---|
Stream reduce 간단 설명 (0) | 2023.05.20 |
[JAVA] java.lang.UnsatisfiedLinkError: no net in java.library.path (1) | 2021.06.25 |
Too many open files (2) | 2021.06.14 |
환경변수 값 읽어오기. (0) | 2021.04.05 |