>source

BOM을 사용하여 UTF-16 (UCS-2) 인코딩을 사용하여 문자열을 텍스트 파일에 저장하는 방법은 무엇입니까?

그만큼 SaveStringsToUTF8File UTF-8로 저장합니다.

스트림을 사용하면 ANSI로 저장됩니다.

var
  i:integer;
begin
  for i := 1 to length(aString) do begin
    Stream.write(aString[i],1);
    Stream.write(#0,1);
  end;
  stream.free;
end;

  • 답변 # 1

    유니 코드로 string (Inno Setup의 유니 코드 버전에서 – Inno Setup 6의 유일한 버전) 실제로 UTF-16 LE 인코딩을 사용하므로 (유니 코드)를 복사하기 만하면됩니다. string 바이트 배열 ( AnsiString ) 비트 단위. 그리고 UTF-16 LE BOM ( FEFF ) :

    procedure RtlMoveMemoryFromStringToPtr(Dest: PAnsiChar; Source: string; Len: Integer);
      external '[email protected] stdcall';
      
    function SaveStringToUFT16LEFile(FileName: string; S: string): Boolean;
    var
      A: AnsiString;
    begin
      S := #$FEFF + S; 
      SetLength(A, Length(S) * 2);
      RtlMoveMemoryFromStringToPtr(A, S, Length(S) * 2);
      Result := SaveStringToFile(FileName, A, False);
    end;
    
    

    <시간 />

    Inno Setup Pascal Script-Reading UTF-16 file의 반대입니다.

  • 이전 Flask를 사용하는 로컬 시스템에서 URL을 "localhost"에서 다른 것으로 변경하는 방법은 무엇입니까?
  • 다음 cpython - 내 코드가 임베디드 Python에서 실행되는지 확인하는 방법이 있습니까?