Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

문자열 인코딩 #1

Open
currenjin opened this issue Sep 10, 2024 · 1 comment
Open

문자열 인코딩 #1

currenjin opened this issue Sep 10, 2024 · 1 comment

Comments

@currenjin
Copy link
Member

문자 인코딩

  • 모든 정보를 읽거나 저장할 때 Binary 형태로 관리한다.
  • 문자에 대응하는 숫자를 매긴다. (standard. ASCII)

ASCII

  • 7Bit(128)
  • 1Bit(Parity)

But, 나머지 언어는 커버가되지 않는다.

8비트(256)로도 커버가되지 않아서 탄생하는게 Unicode(16bit)

Unicode

한글(AC00 - D7A3)

MBCS

Multi Byte Character Set(여러 byte)
한글 - KS X 1001

UTF-8

  • 통일함
  • 1byte, 2byte, 3byte 사용법이 문자마다 다름
  • 문자 맨 앞에 00이 붙으면 1byte, 0F가 붙으면 2byte.
  • UTF-8(8bit), UTF-16(16bit)

URL Encoding은 Unicode를 16진수로 사용하고, %를 붙인다.

Base64

16진수를 2진수로 변환하고, 6비트 씩 끊어서 처리한다.
남는 자리수는 ==으로 처리함.

64 = 2의 6승

getBytes는 시스템의 인코딩 방식을 따름.

@currenjin
Copy link
Member Author

UTF-8, UTF-16, UTF-32

각 인코딩 방식의 차이에서,
UTF-8은 8비트마다, UTF-16은 16비트마다, UTF-32는 32비트마다 앞에 1바이트의 구분자를 넣는다.

이 때문에, 문자가 사용하는 범위에 따라 인코딩 방식을 변경하는게 좋다.
ex) 한글은 UTF-8에서 3byte, UTF-16에서 2byte 이므로 한글이 주로 사용되면 UTF-16으로 인코딩하는게 용량적으로 이득이다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant