갤럭시3의 문자 버그에 대해...

|

갤럭시3 문자 기능에 버그가 있단다. 검색하다 본 내용인데..

http://blog.naver.com/kwangsup87?Redirect=Log&logNo=110142814558 )


핸드폰 관련 일을 해본적이 없으므로, 아래에 쓰는 글은 모두 내 추측이다.




기존엔 흔히 EUC-KR이라고 부르는 문자 인코딩을 사용했겠지.

이 인코딩은 보통 C 등의 프로그래밍 언어에서 기본 char 형식에 사용되는 인코딩인데,

char 하나에 0~255의 값을 넣을 수 있으므로 ASCII 의 값을 따르고,

우리나라나 중국, 일본같이(흔히 CJK라고 부름) 문자 자체를 따로 쓰는국가에서는 프로그램이 돌아가는 OS의 환경에 따라

char 두개의 값으로 하나의 문자를 표시하는데, (그래서 한글은 2byte라는 공식이 만들어진거다)

같은 값이라도 국가 언어 설정에 따라 다른 문자가 표시된다.

우리나라는 EUC-KR, 일본은 JIS, 중국은 Big5(중국꺼 맞나...) 암튼 이런식으로 국가별로 따로 쓰고 있었더랬다.


일본 프로그램을 한글 윈도우에서 돌리면 글자가 깨져 보이는 현상도 이와 같은 이유에서다.



어쨌든, 이 상황을 타개하기 위해 유니코드란게 만들어졌고,

전 세계 문자와 수치를 1:1로 매칭시킨 테이블이 유니코드 테이블이다. 여기엔 한글도 있고, 중국어(한자,간체,번체), 일본어도 다 있다.

그리고 그게 다 다른값을 가진다.


그러면 이 유니코드를 컴퓨터 내부에서 사용하기 위해 값을 어떻게 조정할거냐 정하게 되는데, 이게 인코딩이다.

이 표준을 이끌어나가는게 서방국가들이다 보니... 역시 영문자 위주로....

그리고 기존의 ASCII와의 호환성을 위해 만든게 UTF-8이다.


ASCII 부분의 값은 동일하게 한바이트만 차지하게 하고, 차지하는 바이트 수를 가변적으로 늘려나가는거다.

UTF-8 인코딩에서 한글은 3바이트를 차지한다...


그리고 UTF-16이 있다. (엔디안에 따라 또 달라지지만... 일단 쉽게 가자...)

말 그대로 기본 2바이트를 차지하는 인코딩이다.

ASCII영역에 있는 영문자, 숫자등도 예외없이 2바이트를 사용하게 된다.


요즘 거의 네트워크(인터넷)에서도 UTF-8을 많이 사용하는데,

한글 데이터가 많은 데이터베이스라면 UTF-8보다 UTF-16이 용량 소비가 적을수도 있다.



갤럭시 S3의 문자 인코딩 방식은, 맨 처음에 입력된 문자로 전체 내용의 인코딩을 결정하는듯 싶다.

abc 등의 영문자(ASCII영역 내의 값)가 처음에 입력된다면 UTF-8인코딩을 하여, 이후에 입력되는 한글은 3바이트를 차지하게 되고,

한글이 먼저 입력되면 UTF-16 인코딩을 하여 모든 문자가 2바이트를 차지하게 되는 것.



삼성측에선 UTF-8이니 UTF-16이니 설명해봤자 대부분이 이해못할테니 그냥 버그라고 치부해버리는지도 모르겠다...



사설.

문자셋과 인코딩. 프로그래밍을 하면서 필수로 선행되어야 할 내용인데 시작단계에서 대충 넘겨버리는것같아 아쉽다.

나중에 실무에 들어가게 되면 문자셋때문에 모르면 고생하는일이 많기 때문에...

'미분류' 카테고리의 다른 글

이런저런 링크모음  (0) 2013.05.28
컨텐츠 판매, 정답은 없는건지.  (0) 2013.02.22
내 컬렉션 - 서태지  (0) 2012.05.20
기울어진 대세. 싸이월드.  (0) 2012.03.22
고딩때 모아뒀던 포스터  (1) 2012.01.29
And