본문 바로가기

Unicode

xerces 지원 문자셋 Xerces에서는 다음과 같은 문자셋을 기본적으로 지원한다. (l10n은 지원안한다.. 이구..) XMLUni::fgEBCDICEncodingString XMLUni::fgUCS4BEncodingString XMLUni::fgUCS4LEncodingString XMLUni::fgUSASCIIEncodingString XMLUni::fgUTF8EncodingString XMLUni::fgUTF16BEncodingString XMLUni::fgUTF16LEncodingString XMLUni::fgXMLChEncodingString StylesheetExecutionContextDefault::createFormatterToXML 를 통해서 Encoding 방식을 확인할 수 있다. ICU를 통해서 l10n을.. 더보기
CP949를 UCS4로 안전하게 변환하는 C++ 기법 #include #include #include using namespace std; typedef __enc_traits enc_type; typedef codecvt unicode_codecvt; typedef codecvt_base::result result; typedef wchar_t int_type; typedef char ext_type; typedef __gnu_cxx::char_traits int_traits; int main(void) { locale loc(locale::classic(), new unicode_codecvt); if (!has_facet(loc)) { cerr 더보기
[C++] 자동 형선택을 이용한 UTF 변환 (1) 개요 [C++] 자동 형선택을 이용한 UTF 변환 (1) 개요 MS 에서는 윈도우용 어플리케이션을 만들때 유니코드로 만들기를 권장하고 있다. 개인적으로도 일본어와 한국어를 병행해서 사용해야 하는 일이 많은 관계로, 윈도우에서의 비 유니코드 프로그램을 실행하는것은 상당히 귀찮기 때문에, 그 필요성을 절실히 느껴왔다. 특히나 파일이름에 있어서 여러 언어의 혼용과 병용은 파일을 읽지 못하거나, 아예 프로그램이 동작하지 않는 사태에 까지 이르게 하기 때문이다. 윈도우에서 프로그램을 만들며 생기는 한가지 문제는 UTF-8 과 UTF-16 으로 씌여진 소스파일에 대한 처리이다. 현재 GCC MingW 3.4.5 에서는 BOM이 존재하지 않는 UTF-8 형식의 소스파일을 잘 인식한다. 반면 Visual C++ 에서는 BO.. 더보기
linux에서 한글 출력이 안나올때 소스 상단에 std::locale::global(std::locale("")) 를 선언하면 한글이 정상적으로 출력된다. std:locale:global은 C의 setlocale과 동일한 역할을 하는 C++의 클래스이다. setlocale은 세가지 방법으로 사용이 가능하다. 기본값 locale을 ""로 정의하는 경우 기존 환경변수인 LANG를 기준으로 문자셋을 설정한다 alias 특정 alias(e.g. korean)을 지정하는경우 /etc/locale.alias에서 해당 korean의 설정값을 매핑해서 가져온다. 문자셋 문자셋 이름(e.g. ko_KR.utf-8)을 직접 설정할 수 있다. 원하는 문자셋이 없는 경우 locale-gen으로 생성할 수 있다. e.g.) sudo locale-gen ko_KR.. 더보기