유니코드 변환 (예) '가'->'0xAC00'
글쓴이: hoollahoop / 작성시간: 수, 2005/11/02 - 6:04오후
제목처럼 하려면 어떻게 해야 하나요..
변환하려는 문자열은 예처럼 한글뿐만 아니라
일본어 문자셋, 중국어 문자셋 등이 모두 올 수 있어야 합니다.
그리고 역으로 '0xAC00'->'가' 처럼도 되게 하려고 합니다.
임의로 제가 매핑 테이블을 만들어야 하나요?
maptable[][] = { {'가', '0xAC00'} , ... } 이런식으로요?
누가 만들어 놓은게 있나요?
제가 문자셋 관련해서 지식이 거의 없다보니..
질문도 맞게 드린건지 모르겠네요..
꼭 답변 부탁드립니다.
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 56.61 KB |
Forums:
iconv 로 UCS-2 로 변환하시고,bin2hex (ord) 하시
iconv 로 UCS-2 로 변환하시고,
bin2hex (ord) 하시고 앞에 0x 붙이세요.
반대로도 쉽겠죠.
https://xenosi.de/
원본이 UTF-8 이라면 utf8 to ucs2 로 구글링하면 계산만으로
원본이 UTF-8 이라면 utf8 to ucs2 로 구글링하면 계산만으로 변환되는 함수가 나옵니다.
https://xenosi.de/
응용해 보세요.libiconv를 사용한 예제입니다.[code:1]
응용해 보세요.
위 소스를 test.c로 저장하고,libiconv를 사용한 예제입니다.
$ gcc -o test test.c
* 주의
했을때
제 경우에는, utf-8이 터미널 세팅입니다.
만일, 다른 터미널(예를들어 EUC-KR)이라면, iconv_open("utf-16BE", "EUC-KR") ;로 소스를 고쳐서 돌리셔야 한다는...
예제를 컴파일해 봤는데, 이해 안되는 값이 나옵니다.
EUC 형태 코드를 Unicode로 바꾸는 방법을 찾아보다가, 이 글을 찾게 되어, 코드대로 해 봤습니다.
되더군요. ( 코드 올려 주신 분 감사드립니다. :) )
근데, 이걸 함수로 만들어 보니, 예상 이외의 값이 나와 , 다시 올려봅니다.
결과 그림을 보면 아시겠지만, 변환 자체는 제대로 되는 데도 불구하고, 함수 안에서의 source, container 의 코드 값은 이상하네요.
특히 이해가 안 되는게, unsigned char임에도 %x로 값 찍어보면, 4바이트짜리 나옵니다. -_-;
부디... 제게 깨달음을...
Re: 예제를 컴파일해 봤는데, 이해 안되는 값이 나옵니다.
%x는 unsigned int를 출력할 때 쓰는 것입니다.
댓글 달기