문제

나는이 다중 바이트 캐릭터의 모든 것을 대부분 무시할 수 있었지만 이제는 UI 작업을해야 하며이 분야에서의 무지가 나를 따라 잡을 것이라는 것을 알고 있습니다! 누구든지 몇 단락으로 신청서를 현지화 할 수 있도록 알아야 할 사항을 설명 할 수 있습니까? 어떤 유형을 사용해야합니까 (.NET 및 C/C ++를 모두 사용하고 UNIX와 Windows 모두에 대한 답변이 필요합니다).

도움이 되었습니까?

해결책

Joel Spolsky 's를 확인하십시오 모든 소프트웨어 개발자가 절대적으로 절대적으로 최소한, 유니 코드 및 문자 세트에 대해 긍정적으로 알아야합니다 (변명 없음!)

20140523 편집: 또한, 시청 문자, 기호 및 유니 코드 기적 YouTube의 Tom Scott : 10 분도 안되고 UTF -8 인 화려한 '해킹'에 대한 훌륭한 설명

다른 팁

문자 인코딩은 주어진 문자 세트에서 기호를 찾는 일련의 코드로 구성됩니다. 이 좋은 기사를 참조하십시오 캐릭터 인코딩에 대한 위키 백과.

UTF8 (UCS) 각 기호에 대해 1 ~ 4 바이트를 사용합니다. 위키 백과 멀티 바이트 런 다운의 작동 방식에 대한 좋은 런 다운을 제공합니다.

  • 단일 바이트 문자의 가장 중요한 부분은 항상 0입니다.
  • 다중 바이트 시퀀스의 첫 번째 바이트의 가장 중요한 비트는 시퀀스의 길이를 결정합니다. 이 가장 중요한 비트는 2 바이트 시퀀스의 경우 110입니다. 3 바이트 시퀀스의 경우 1110.
  • 다중 바이트 시퀀스의 나머지 바이트는 10 개의 가장 중요한 비트로 10을 갖습니다.
  • UTF-8 스트림에는 바이트 FE 나 FF가 포함되어 있지 않습니다. 이것은 UTF-8 스트림이 U+Feff (바이트 주문 마크)로 시작하는 UTF-16 스트림처럼 보이지 않도록합니다.

이 페이지는 또한 각 문자 인코딩 유형의 장점과 단점을 크게 비교할 수 있습니다.

UTF16 (UCS2)

각 기호에 대해 2 바이트 ~ 4 바이트를 사용합니다.

UTF32 (UCS4)

각 기호에 항상 4 바이트를 사용합니다.

단지 데이터의 바이트를 의미하며 실제 인코딩이 아닙니다. UTF8/UTF16/ASCII와 유사하지 않습니다. Char* 포인터는 모든 유형의 데이터 및 인코딩을 참조 할 수 있습니다.

STL :

STL의 STD :: WSTRING 및 STD :: String은 UTF-8 및 UTF-16과 같은 가변 길이 문자 인코딩 용으로 설계되지 않았습니다.

구현 방법 :

ICONV 라이브러리를 살펴보십시오. 아이콘 그러한 프로젝트에서 사용하는 강력한 캐릭터 인코딩 변환 라이브러리입니다. libxml (XML C Gnome의 파서)

캐릭터 인코딩에 대한 기타 훌륭한 리소스 :

지혜를 받았습니다 Spolsky의 기사는 몇 가지 중요한 요점을 놓치고 있다고 제안합니다.

이 기사는 더 완전한 것으로 권장됩니다.유니 코드 ® 표준 : 기술 소개

이 기사는 또한 좋은 소개입니다. 유니 코드 기본 사항

후자는 특히 유니 코드에 대한 문자 인코딩 양식 및 체계에 대한 개요를 제공합니다.

다양한 UTF 표준은 "코드 포인트"를 인코딩하는 방법입니다. CodePoint는 유니 코드 차터 세트에 대한 색인입니다.

또 다른 인코딩은 Allways 16 비트 인 UCS2이므로 전체 유니 코드 범위를 지원하지 않습니다.

알아두면 좋은 코드 포인트가 하나의 캐릭터와 같지 않다는 것입니다. 예를 들어 Å와 같은 문자는 코드 포인트 또는 a에 대해 하나의 코드 포인트와 링의 두 코드 포인트로 표시 될 수 있습니다.

따라서 두 개의 유니 코드 문자열을 비교하려면 비교 전에 표준 표현을 얻기 위해 정규화가 필요합니다.

글꼴에는 문제도 있습니다. 글꼴을 처리하는 두 가지 방법이 있습니다. 필요한 모든 유니 코드 문자에 글리프가있는 거대한 글꼴을 사용하십시오 (최근의 Windows 버전에는 하나 또는 두 개의 글꼴이 포함되어 있다고 생각합니다). 또는 유니 코드 표준의 하위 집합에 전용 된 다양한 글꼴의 글리프를 결합 할 수있는 SOM 라이브러리를 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top