처음에는 코드가 작동하지 않습니다. 우연한 일치 인 경우 char
(또는 unsigned char
)의 인코딩은 ISO-8859-1이 첫 번째 256 유니 코드 코드 포인트와 동일한 코드 포인트를 가지고 있기 때문에 ISO-8859-1입니다. 그러나 ISO-8859-1에는 이 크게 ISO-8859-15에 의해 대체되었으므로 아마도 이 작동하지 않을 것입니다. (예를 들어, 0xA4을 위해 그것을 시도하십시오. ISO-8859-15의 유로 기호를. 그것은 당신에게 완전히 다른 문자를 제공 할 것입니다.) 가 따라 둘 중이 변환을 수행하는 두 올바른 방법이있다
( 은 인코딩에 에 따라 여러 버전의 코드가 필요할 수 있다는 것을 의미합니다). 가장 간단한 방법은 개의 문자열과 문자 당 하나의 배열을 갖는 배열을 사용하는 것입니다. 경우에는 if
이 필요하지 않습니다. 다른 하나는 코드를 유니 코드 코드 포인트 (32 비트 UTF-32)로 변환하고 을 UTF-8로 변환하는 것입니다 (일부 문자의 경우 2 바이트 이상 필요합니다. 유로 문자는 0x20AC : 0xE2이고, 0x82, 0xAC).
편집 : http://www.cl.cam.ac.uk/~mgk25/unicode.html : UTF-8에 대한 좋은 소개는
. 제목에 따르면 은 Unix/Linux 용이지만 시스템이 있다면 거의 존재하지 않습니다. 특정 정보가 있습니다 (그러한 정보는 분명히 으로 표시되어 있음).
1. 그것은 ... UTF-8 인코딩에 의해 정의 된대로 작동합니까? 그 밖에 어떻게? –
@ R.MartinhoFernandes : 내 생각에 ..이 코드는 저에게 쓰여지지 않았습니다. 그것은 지금 당분간 일하고 있습니다. 그래서 나는 그게 맞을 것이라고 생각합니다. 나는 그 배후의 논리를 이해하고 싶었다. – Asha
@Asha 그러면 utf-8 사양을 파헤쳐 야 할 것입니다. – Xaqq