2014-02-10 4 views
0

"C"에서 "go"언어에 대한 렉서를 코딩하려고합니다.하지만 UTF-8을 문자 세트로 사용하고 C는 Ascii를 사용했습니다. 그렇다면 유니 코드 문자를 ascii로 표현할 수 있습니까?ASCII로 UTF-8을 표현합니다.

+0

음, [UTF-7] (http://en.wikipedia.org/wiki/UTF-7)이라는 인코딩이 있지만 C가 다른 비 ASCII 인코딩을 처리 할 수없는 이유는 무엇입니까? –

+0

[Project ICU] (http://site.icu-project.org/)는 C와 C++ 및 Java에 대한 유니 코드 처리의 이식 가능한 구현을 제공합니다. – DevSolar

+3

@TimPietzcker : Erm, 그는 명백한 이득이 없으면 UTF-8에서 UTF-7로 변환해야합니다. 이 세월 동안 나는 전자 메일 외의 UTF-7 사용을 전혀 보지 못했습니다. – DarkDust

답변

0

C는 multibyte strings을 지원하지만 작동하려면 로케일을 사용해야합니다.

ASCII는 실제로 UTF-8의 하위 집합이므로 표준 C 단일 바이트 문자열 기능을 어느 정도 사용할 수 있습니다. 길이를 요구하거나 리턴하는 함수는 문자 수가 아닌 바이트 수임을 기억하십시오.

더 복잡한 것이면 외부 라이브러리가 필요합니다.

+0

당신은 그것을 언급했지만, 나는 이것을 강조하고 싶다 : C 멀티 바이트 문자열 처리는 로케일에 민감하다! – DarkDust