General and Desktop

QTextCodec클래스를 사용하여 유니코드와 EUC-KR 변환

by makersweb posted Mar 25, 2019
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

KSC5601은 완성형과 조합형의 모든 한글 문자의 표현이 가능한 한글 문자 부호 표준이며 euc-kr과 CP949는 모두 이 KSC5601을 기본으로 한 문자 부호이다. 

 

유닉스계열의 한글 문자 부호인 euc-kr에서는 KSC5601을 그대로 수용하고 있다.

 

윈도우계열은 한글 문자 부호인 CP949가 완성형 한글의 형태이지만 KSC5601에 의해 조합형으로 만들어지는 한글의 코드까지도 제공하고 있으므로 두 문자 부호의 인코딩 방식은 달라도 같은 코드를 만들어 내게 되어 두 문자 부호는 서로 호환된다. 단, java환경에서는 euc-kr이 KSC5601-87로 사용되어 CP949의 확장 완성형과 호환되지 않을 수도 있으니 주의해야 한다.

 

Qt가 지원하는 인코딩은 다음과 같다.

Big5

Big5-HKSCS

CP949

EUC-JP

EUC-KR

GB18030

HP-ROMAN8

IBM 850

IBM 866

IBM 874

ISO 2022-JP

ISO 8859-1 to 10

ISO 8859-13 to 16

Iscii-Bng, Dev, Gjr, Knd, Mlm, Ori, Pnj, Tlg, and Tml

KOI8-R

KOI8-U

Macintosh

Shift-JIS

TIS-620

TSCII

UTF-8

UTF-16

UTF-16BE

UTF-16LE

UTF-32

UTF-32BE

UTF-32LE

Windows-1250 to 1258

 

QTextCodec클래스를 사용하여 유니코드또는 EUC-KR로 변환할 수 있다. 아래는 eucKR로 인코딩 된 한국어 문자열이 있고 이를 유니 코드로 변환 예제 코드이다.

QByteArray encodedString = "...";
QTextCodec *codec = QTextCodec::codecForName("eucKR");
QString string = codec->toUnicode(encodedString);

 

다음은 유니코드에서 로컬 인코딩으로 문자열을 변환하는 예제이다.

QString string = "...";
QTextCodec *codec = QTextCodec::codecForName("eucKR");
QByteArray encodedString = codec->fromUnicode(string);

 


Articles

5 6 7 8 9