2008-10-15 33 views

답변

0

문자열을 표시하거나 처리하는 방법에 문제가있을 수 있습니다. 예를 들어 일반 콘솔 창에는 printf가있는 일본어 문자열을 표시 할 수 없습니다.

코드를 게시 할 수 있습니까?

1

WritePrivateProfileString 설명서에 따르면 유니 코드 버전은 WritePrivateProfileStringW입니다. 이를 사용하면 유니 코드 문자를 사용할 수 있어야합니다.

+1

ini 파일 인코딩은 utf-16le이어야합니다. – Jichao

2

WritePrivateProfileStringW 함수는 레거시 지원 기능이므로 INI 파일을 레거시 시스템 인코딩 (예 : 일본 시스템에서는 Shift-JIS)으로 씁니다. 유니 코드 사용이 가능한 INI 파일을 원한다면 외부 라이브러리를 사용해야합니다.

그것은 C++, 하나의 헤더 파일, MIT 라이선스와 템플릿 라이브러리 (즉, 상업적 사용은 OK입니다)입니다 SimpleIni http://code.jellycan.com/simpleini/을보십시오. 소스 파일에 포함시키고 사용하십시오. 크로스 플랫폼이며 UTF-8 및 레거시 인코딩 된 파일을 지원하며 주석 및 구조 등을 크게 유지하면서 INI 파일을 읽고 쓸 수 있습니다. 페이지를 가장 쉽게 체크 아웃 할 수 있습니다.

잠시 동안 있었고 꽤 많은 사람들이 사용하는 것으로 보입니다. 나는 그것을 쓰고 그것을 계속 지원한다.

5

GetPrivateProfileString()WritePrivateProfileString()은 일종의 유니 코드와 함께 작동합니다.

ini 파일이 UTF-16LE로 인코딩 된 경우, 즉 UTF-16 BOM이있는 경우 해당 기능은 유니 코드로 작동합니다. 그러나 함수가 파일을 만들어야하는 경우 ANSI 파일을 만들고 ANSI에서만 작동합니다.

유니 코드와 함께 함수를 사용하려면 먼저 사용하기 전에 ini 파일을 작성하고 UTF-16LE 바이트 순서 표시를 작성하십시오. 그런 다음 정상적으로 수행하십시오.

함수 은 UTF-8에서 전혀 작동하지 않습니다.

자세한 내용은 Michael Kaplan's blog을 참조하십시오.

관련 문제