-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path문자변환.txt
42 lines (21 loc) · 1.63 KB
/
문자변환.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
*문자집합
vscode 기본 UTF-8 (ISO.8859-1,UTF-16,UTF-8) 얘내들을 케릭터 셋이라 부른다.
문자인코딩 규칙= 문자변환 규칙
UTF- 16 Big endian
자바c라는 컴파일러가 실행되고 나머지 부가정보 들을 수행하고 소스파일을 실행한다.
소스파일이 MS949 이면 javac -encoding MS949
프로그램
jpg 파일을 실행시키면 jpg 실행시킬 사진프로그램이 실행 되고 그다음 실행파일을 읽어들여서 화면에 출력한다.
hello.java
소스파일
가 를 출력한다고 하면 컴파일할때에는 작성되는 프로그램 예를들어 vscode로 작성하면
vscode 기본 케릭터셋은 UTF 8 인데 이걸 컴파일 하면서
유니코드 로 바뀐다. 컴파일된 .class 파일을 JWM으로 실행시키면
JWM 안에 file.encoding에서 유니코드(.class) 코드를 ms949로 변환해서 출력한다.
결론
소스코드는 뭘로 무슨 코드든 상관없이 컴파일을 하게되면 유니코드로 작성됨(.class)
그거를 JVM 이 해당 os에 맞게 변환한다
자바는 println() 을출력했지만 os 에서는 printf로 출력하길 원한다
그걸 변환해주는 역활이 JVM 이다
윈도우에서 UTF8로 작성된 소스파일을 컴파일 할려고 하니 윈도우 CMD에선 이 소스파일을 MS949로 기본 설정이 되어있어서 컴파일하는데 오류가 난다 왜냐면 MS949 한글코드를 못읽어온다 그래서
UTF8로 인코딩 한 파일이라고 알려주면 UTF8 로 인코딩하고 바이트코드는 유니코드로 변환되고 JVM이 각 os 설정에 맞게 변환해서 출력한다.