如:
中国人      中国人
深圳市      深圳市后者是我要提交一个接口要用到的字符格式。请知道的朋友告诉我用哪个函数,或是帮我写个函数,,谢谢。

解决方案 »

  1.   

    var
      WideStr: WideString;
      utfStr: utf8String;      
    begin
      utfStr := UTF8Encode(wideStr);         //将wideString 数据转换为utf-8字符类型数据
    end;
    看看这个对你有帮助吗,string转wideString估计你知道的。http://eastlei.blog.163.com/blog/static/453153220110201433212/
    这个网址是utf8的相关的一些函数。
      

  2.   

    中国人 中国人
    深圳市 深圳市
    这个不知道是什么格式的啊
      

  3.   

    请参考:
    http://topic.csdn.net/u/20111112/23/4fc26bbb-a079-422e-802a-ded9315e9257.html
      

  4.   

    这个不是Utf8。是UniCodeFunction Chinese2UniCode(AiChinese : WideString) : string;
    Begin
      Result:='&#x'+IntToHex(Integer(AiChinese[1]),4)+';';
    end;
    ShowMessage(Chinese2UniCode('中'));时间所限,随便写的,Chinese2UniCode只能处理单个汉字,你自己整理一下让它能处理字符串就OK
    或者量不大的话,就直接用Chinese2UniCode('中')+Chinese2UniCode('国')+Chinese2UniCode('人')
      

  5.   

    楼上的做法是对的,不管是要什么码的ASCII编码字符串,思路都是一样,都首先要转成你所要编码的字符串类型,软后按照字符串的长度逐个从字符串中按照BYTE读取然后转成16进制的字符串,加上你所要的前缀连接起来
    有思路应该就可以写个函数了吧
      

  6.   

    记事本保存为Unicode后看16进制是Unicode编码(几UTF16),不是UTF8,UTF8系统也有转换函数ANSITOUTF8测试过了下面的函数运行正确:function WideStrToASCII(const ws:WideString):string;//将UTF8编码转为ASCII码
    var
      i:Integer;
    begin
      Result:='';
      for I := 1 to Length(ws) do
      begin
        if ws[i]<>#0 then
          Result:=Result+'&&#x'+IntTohex(Integer(ws[i]),4)+';';
      end;
    end;例子:
    var
      ws:WideString;
    begin
      ws:='中国人';
      ShowMessage(UnicodeToASCII(ws));
    end;
      

  7.   

    function UnicodeToASCII(const ws:WideString):string;//将Unicode编码转为ASCII码
    var
      i:Integer;
    begin
      Result:='';
      for I := 1 to Length(ws) do
      begin
        if ws[i]<>#0 then
          Result:=Result+'&&#x'+IntTohex(Integer(ws[i]),4)+';';
      end;
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    var
      ws:WideString;
    begin
      ws:='中国人';
      ShowMessage(UnicodeToASCII(ws));
    end;
      

  8.   

    经过确认,你的编码是utf 16
      

  9.   

    建议还是用UNICODE编码吧,这样通用性好的
      

  10.   

    function XXOO(s:widestring):string ;
    var
      i:Integer;
    begin
      for i:=1 to Length(s) do
        result:=result+'&&#x'+ IntToHex(Integer(s[i]),4)+';';
    end;ShowMessage(XXOO('中国人'));
      

  11.   

    14楼不就是把我9楼和10楼(我发了两边是因为发现贴上去的代码格式变了)的代码简化一下,换个函数名。
    并且简化简化的也有问题,对返回变量RESULT没有初始化,这个如果传进来的参数是空字符串的话,返回的结果可能就是未知的。并且省略了字符串结尾的判断,字符串有可能长度是20,但内容只有10后面就是#0了,所以说也不严禁