2012-09-15 65 views
0

我正在使用NSIS Unicode版本我试图将字符串追加到现有的Unicode文件(UTF-16LE)。将字符串写入Unicode文件

我的问题:当我将字符串写入文件然后打开文件,我写的字符串就是乱码。我有一种感觉,它试图将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 

回答

0

如果你正在处理UTF-16LE文件,你需要使用FileWriteUTF16LE,其中写道:Unicode文本,而不是FileWrite,其中写道:ANSI文本。