InnoSetup은 INI 파일 인코딩을 어떻게 처리합니까?

Sep 02 2020

InnoSetup 스크립트의 [INI]-섹션에 일반 항목이 있습니다.

예 :

[INI]
Filename: "{app}\myinifile.ini"; Section: "MY_SECTION"; Key: "MY_KEY"; String: "value which contains a symbol (§) that is different between ascii and UTF-8 encoding: §" 

이제 일부 시스템에서 INI 파일이 생성되면 단락 기호 ( "§")가 예상되는 ascii로 처리되고 다른 시스템에서는 UTF-8로 변환됩니다.

사실 내가 그 파일의 정확한 내용을 분석한다면.

일반적으로 나는 다음을 가지고 있습니다 : § => "47"(16 진수)
하지만 일부 시스템에서는 SOMEHOW : § => "C2 47"(hex), "§"의 UTF-8 표현
이지만 왜이 차이가 있습니까?

Inno Setup은 WritePrivateProfilStringWin-API 의 일반 을 사용한다고 생각했습니다 . Win-Api에서 이것을 찾았습니다.

winbase.h헤더 정의 GetPrivateProfileString자동 UNICODE 처리기 상수의 정의에 따라,이 함수의 ANSI 또는 유니 코드 버전을 선택 별칭.

그러나 Inno Setup에 항상 ANSI 변형을 사용하도록 지시 할 수 있습니까?

답변

Tony Sep 21 2020 at 09:56

다른 스레드에서 문제를 해결했습니다.이 문제는 InnoSetup과 직접 관련이 없습니다. 다음을 참조하십시오.

https://stackoverflow.com/a/63989920/10934555

어쨌든 감사합니다, InnoSetup은 흔 듭니다 :-)