虽然大部份的中文已经解出,但是还有有几个乱码,
如何把54936改成65001,就完整的把UTF8显示出来了可我想不用这种方式,直接转还有别的办法能不出现小乱码吗??IdHTTP1 := TIdHTTP.Create;
ss := TStringStream.Create('', TEncoding.GetEncoding(54936));//默认为gb18030
idhttp1.Get('www.jobui.com',ss);//任意UTF8网站都这样
 Memo1.text:= LowerCase(ss.DataString);//转出的字符全部统一小写Memo2.text:=utf8toAnsi( Memo1.text);

解决方案 »

  1.   

      IdHTTP1 := TIdHTTP.Create;
      try
        Memo1.Text:= Utf8ToAnsi(IdHTTP1.Get('http://www.jobui.com'));
      finally
        IdHTTP1.Free;
      end;
    这样并未发现乱码。
      

  2.   


    楼上兄弟,你试一下2010版,全是乱码
    2007(不含)以后,包括控件默认编码是unicode了,你一转,自然是乱码。
      

  3.   

    也就是说,2007(不含)以后,显示unicode的编码,直接如下即可  IdHTTP1 := TIdHTTP.Create;
      try
        Memo1.Text:= IdHTTP1.Get('http://www.jobui.com');
      finally
        IdHTTP1.Free;
      end;
      

  4.   

    这样是可以,但是碰到GB2312的网页,显示就会乱码..这样是可以,但是碰到GB2312的网页,显示就会乱码..你都能区别网页编码了,那就区别分情况转。  IdHTTP1 := TIdHTTP.Create;
      try
        html:= IdHTTP1.Get('http://0512aj.cn');
        if IdHTTP1.Response.CharSet <> 'utf-8' then
          html := AnsiToUtf8(html);
        Memo1.Text := html;
      finally
        IdHTTP1.Free;
      end;
      

  5.   

    UTF8转ANSI是什么概念, 转的时候要注意的是, 能够装在 UTF8里的水, 是不能装在篮子ANSI里的, 只能装到水桶ANSI里.
    ANSI就是只能装一种东西的容器, 所以不同语言有不同的ANSI. 不是同一种东西.
      

  6.   

    刚刚完美解决类似问题:
    uses 
    IdURI;
    ......     Respon:=TidURI.URLDecode(Http.Get(TIdURI.URLEncode(URLStr)));这样URLStr就不需要自己去编码和解码了,很好用,支持中西结合文,呵呵
      

  7.   

    IdURI  在C++builder  怎么使用?
      

  8.   

    别用那个IDhttp了,问题太多了