我在写程序的时候发现一个问题,不知道怎么办,
   我有一个字符,他是unicode字符,ord(该字符)=12345,我用WideChar(12345),发现写入到文本是?,我看了文件内容,居然存的是?的Ascii,不知道是什么回事,望不吝剔教

解决方案 »

  1.   

    将文本格式改为Unicode格式存储,否则就是存为?号了,当然arcsii码也是?号的
      

  2.   

    再进一步,如果我想把这个widechar(12345) 写到注册表,就写这个字符,怎么处理呢,总不至于写?吧
      

  3.   

    那你用widestring试一下
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Text:WideString;
    begin
      Text:=WideString(WideChar($D840))+WideChar($DC00);
      MessageBoxW(Form1.Handle,Pointer(Text),'U+20000',mb_ok)
    end;另参考tntunicode组件
      

  4.   

    VCL不支持unicode,两种解决办法
    1、找一些支持unicode的第三方控件
    2、自己写函数完成转换