2010-12-06 2 views
0

전자 메일 클라이언트의 컨텍스트에서/다른 많은 문자 집합과 유니 코드로 변환해야합니다. 지금까지 윈도우와 리눅스에서 iconv를 사용하여 문자셋 간의 텍스트 변환을 수행했습니다. 그러나 맥에서 내가 시도한 첫 번째 변환은 cp932에서 utf-16까지 가비지 문자로 실패했습니다. 나는 주변에 google을 가지고 있었고 어떤 사람들은 setlocale을 사용하여 로케일을 처음 설정하는 것을 제안했었다. 그러나 그것은 사물에 영향을 미치지 않는 것처럼 보였다.MacOSX에서 charset 변환을 수행하는 데 사용할 수있는 API는 무엇입니까? (iconv 나를 위해 작동하지 않습니다)

아마도 mac에서 iconv를 사용해서는 안됩니다. charset 변환을위한 대체 API가 있습니까? 창에

setlocale(LC_ALL,""); 

iconv_t Conv; 
if ((Conv = libiconv_open("utf-16", "cp932")) >= 0) 
{ 
    // Convert 
    int s = libiconv(Conv, &InBuf, (size_t*)&InLen, &OutBuf, (size_t*)&OutLen); 
    libiconv_close(Conv); 
} 

같은 입력 텍스트가 잘 작동

, Mac에서 쓰레기를 준다 : 나는뿐만 아니라의 iconv 코드를 수정에 대한 제안에 열려있어

은 ... 코드의 라인을 따라 기본적으로.

답변

2

CFString (-framework CoreFoundation)에는 문자 변환 API가 있습니다. 본질적으로 CP932 (kCFStringEncodingDOSJapanese) 문자열에서 CFString을 생성 한 다음 UTF-16 데이터를 추출 할 수 있습니다.

자세한 정보 here.

+0

니스. 그 너머의 유일한 누락 된 링크는 CFStringConvertIANACharSetNameToEncoding을 제 위치에 놓기 때문에 Apple 고유의 인코딩 ID 대신 기존의 charset 이름을 사용할 수 있습니다. 좋아, 지금. – fret