Qt의 유니코드
유니코드는 전 세계에서 사용되는 거의 모든 언어의 텍스트를 인코딩하는 표준입니다. 오늘날 대부분의 최신 운영 체제에서 텍스트의 기본 인코딩으로 사용되고 있습니다. 주요 예외는 마이크로소프트 윈도우로, 여전히 애플리케이션에 대해 코드 페이지와 유니코드를 모두 지원하는 이중 시스템을 채택하고 있습니다.
문자열 처리를 위한 Qt의 클래스
이 클래스들은 문자열 데이터를 다룰 때 유용합니다. 텍스트 렌더링에 대한 정보는 ‘서식 있는 텍스트 처리’ 개요를 참조하십시오. 문자열 데이터가 XML 형식인 경우 ‘XML 처리’ 개요를 참조하십시오.
QString API의 읽기 전용 하위 집합을 사용하여 Latin-1, UTF-8 또는 UTF-16 문자열을 통합적으로 처리 | |
바이트 배열 | |
바이트 배열 목록 | |
바이트 배열에서 빠르게 일치시킬 수 있는 바이트 시퀀스를 보관합니다 | |
QByteArray API의 읽기 전용 하위 집합을 사용하여 바이트 배열을 나타내는 뷰 | |
16비트 유니코드 문자 | |
지역화된 정렬 알고리즘에 따라 문자열을 비교합니다 | |
문자열 정렬 속도를 높이는 데 사용할 수 있음 | |
8비트 ASCII/Latin-1 문자 | |
Latin-1 텍스트에서 부분 문자열을 검색하는 데 최적화됨 | |
US-ASCII/Latin-1로 인코딩된 문자열 리터럴을 감싸는 얇은 래퍼 | |
다양한 언어에서 숫자와 해당 숫자를 나타내는 문자열 간 변환을 수행합니다 | |
정규 표현식을 사용한 패턴 매칭 | |
QRegularExpression을 문자열에 대조하여 얻은 결과 | |
QRegularExpression 객체가 문자열에 대해 전역 일치를 수행한 결과에 대한 이터레이터 | |
QByteArrayMatcher의 컴파일 타임 버전 | |
QLatin1StringMatcher의 컴파일 타임 버전 | |
유니코드 문자열 | |
텍스트 인코딩 및 디코딩을 위한 기본 클래스 | |
텍스트용 상태 기반 디코더 | |
텍스트용 상태 기반 인코더 | |
문자열 목록 | |
유니코드 문자열 내에서 빠르게 일치시킬 수 있는 문자 시퀀스를 보관합니다 | |
QString 부분 문자열을 감싸는 얇은 래퍼 | |
지정된 구분자를 따라 문자열을 토큰으로 분할합니다 | |
QString API의 읽기 전용 하위 집합을 사용하여 UTF-16 문자열을 통합적으로 처리합니다 | |
문자열 내에서 유니코드 텍스트 경계를 찾는 방법 | |
텍스트를 읽고 쓰는 데 편리한 인터페이스 | |
QString API의 읽기 전용 하위 집합을 통해 UTF-8 문자열을 통합적으로 처리 |
웹상의 유니코드 관련 정보
유니코드 컨소시엄에서는 다음과 같은 여러 문서를 제공하고 있습니다.
Qt에서의 유니코드
Qt 및 Qt를 사용하는 대부분의 애플리케이션에서, 사용자에게 표시되는 문자열의 대부분 또는 전부는 유니코드로 저장됩니다. Qt는 다음을 제공합니다:
- 파일 입출력을 위한 기존 인코딩과의 상호 변환: QTextCodec 및 QTextStream 참조.
- 로케일별 입력 방식 및 키보드 지원.
- 유니코드 문자를 저장하는 문자열 클래스( QString)로, C 문자열에서 마이그레이션할 수 있도록 지원하며, UTF-8, ISO8859-1 및 US-ASCII 간의 빠른 변환은 물론 일반적인 모든 문자열 연산을 지원합니다.
- 유니코드를 지원하는 UI 컨트롤.
- 유니코드 호환 텍스트 분할 (QTextBoundaryFinder)
- 유니코드 호환 줄 바꿈 및 텍스트 렌더링
유니코드의 이점을 최대한 활용하려면, 사용자에게 표시되는 모든 문자열을 저장할 때는 QString 를 사용하고, 모든 텍스트 파일 입출력은 QTextStream 를 사용하여 수행하는 것이 좋습니다.
Qt에서 사용자에게 표시될 수 있는 문자열인 모든 함수 인자( QLabel::setText() 등)는 const QString &를 매개변수로 받습니다. QString 는 const char * 로부터 암시적 형 변환을 제공하므로 다음과 같은 코드가
label->setText("Password:");와 같은 코드가 정상적으로 작동합니다. 또한 QObject::tr()과 같은 함수는 다음과 같은 번역 기능을 제공합니다:
label->setText(tr("Password:"));QObject::tr()는 const char * 을 유니코드 문자열로 매핑하며, 설치 가능한 QTranslator 객체를 사용하여 매핑을 수행합니다.
Qt XML은 여러 내장 QTextCodec 클래스를 제공합니다. 즉, 다른 프로그램과 통신하거나 레거시 파일 형식의 파일을 읽고 써야 하는 프로그램을 지원하기 위해 유니코드와 레거시 인코딩 간 변환 방법을 알고 있는 클래스들입니다.
const char * 로의 변환 및 에서의 변환에는 UTF-8이 사용됩니다. 그러나 애플리케이션은 다른 로캘용 코덱을 쉽게 찾을 수 있으며, 열려 있는 파일이나 네트워크 연결이 특정 코덱을 사용하도록 설정할 수 있습니다.
US-ASCII와 ISO-8859-1은 매우 널리 사용되므로, 이 두 인코딩 간 변환을 위한 특히 빠른 함수도 제공됩니다. 예를 들어, 애플리케이션의 아이콘을 열려면 다음과 같이 할 수 있습니다:
또는
QFile file(QLatin1String("appicon.png"));Qt는 전 세계에서 사용되는 대부분의 언어의 텍스트 렌더링을 지원합니다. 지원되는 문자 체계의 상세 목록은 운영 체제의 지원 상황과 대상 시스템의 글꼴 가용성에 따라 다소 달라질 수 있습니다.
‘Qt를 이용한 국제화’항목도 참조하십시오 .
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.