给你个函数,直接调用就可以了,它可以实现string到unicode的转换.
type TCodePage=(cpStandard,cpGB,cpBig);//unicode 转换类型,
const CodePageID:array[0..2] of integer=(0,936,950);function StringToUnicode(s:string;CodePage:TCodePage):widestring;
var
  SourceLen, ResultLen: Integer;
  Buffer: array[0..1023] of WideChar;
begin
  SourceLen := Length(s);
  if SourceLen < SizeOf(Buffer) div 2 then
    Result := SysAllocStringLen(Buffer, MultiByteToWideChar(CodePageID[ord(codePage)], 0,
    PChar(s), SourceLen, Buffer, SizeOf(Buffer) div 2))
  else
  begin
    ResultLen := MultiByteToWideChar(CodePageID[ord(codePage)], 0,
    Pointer(s), SourceLen, nil, 0);
    Result := SysAllocStringLen(nil, ResultLen);
    MultiByteToWideChar(CodePageID[ord(codePage)], 0, Pointer(s), SourceLen,
    Result, ResultLen);
  end;
end;
eg:
     AText:=StringToUnicode(AText,cpBig);
应该没问题的.

解决方案 »

  1.   

    var
      s:Widestring;AssignFile(MyTextFile, 'MyTextFile.txt');
            Rewrite(MyTextFile);
            try
                    S := '[OLEDB]';
                    Writeln(MyTextFile, S);
            finally
                    CloseFile(MyTextFile);
            end;
      

  2.   

    对!只要把串定义成WideString 就可以了
      

  3.   

    var
        MyTextFile: TextFile;
        s:Widestring;
    beginAssignFile(MyTextFile, 'MyTextFile.txt');
            Rewrite(MyTextFile);
            try
                    S := '[OLEDB]';
                    Writeln(MyTextFile, S);
            finally
                    CloseFile(MyTextFile);
            end;
    end;
    测试过