0

我正在使用NSIS Unicode 版本,并且正在尝试将字符串附加到现有的 Unicode 文件(UTF-16LE)。

我的问题:在我将字符串写入文件然后打开文件后,我写的字符串只是乱码。我有一种感觉,它试图将 ANSI 字符串写入 UTF-16LE 文件。

如何将字符串写入 unicode 文件?

Function ${prefix}AppendFile 
    # Note: Will automatically create file if it doesn't exist
    # $0 = fName
    # $1 = strToWrite

    Pop $1
    Pop $0

    ClearErrors
    FileOpen  $3 $0 a
    FileSeek  $3 0 END
    FileWrite $3 "$\r$\n"        # write a new line
    FileWrite $3 "$1"
    FileWrite $3 "$\r$\n"        # write an extra line
    FileClose $3                 # close the file

    IfErrors 0 +2
        MessageBox MB_OK "Append Error: $1 $\r$\n$\r$\n$0"
FunctionEnd
4

1 回答 1

1

如果您正在处理 UTF-16LE 文件,则需要使用FileWriteUTF16LE写入 Unicode 文本,而不是FileWrite使用 写入 ANSI 文本。

于 2012-09-15T00:39:53.210 回答