Lazarus中文社区

 找回密码
 立即注册(注册审核可向QQ群索取)

QQ登录

只需一步,快速开始

Lazarus IDE and 组件 下载地址版权申明
查看: 3732|回复: 4

Indy 中文乱码

[复制链接]

该用户从未签到

发表于 2015-11-9 14:09:52 | 显示全部楼层 |阅读模式
操作系统 中文 Win7 64位

服务端 DelphiXE6  indy 10.6.0.5122
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
  S: String;
begin
  if AContext.Connection.Connected then
  begin
      S := AContext.Connection.Socket.ReadLn(enUTF8);
      Memo1.Lines.Add(S);   
      S := 'Accept: 我收到了';
      AContext.Connection.Socket.WriteLn(S, enUTF8);
  end;
end;

客户端  Lazarus 1.4.4  indy 10.6.0  indy-10.2.0.3
var
  s: String;
begin
  s := Edit1.Text;
  memo1.Append('Send: ' + S);
  idClient.Socket.WriteLn(s, enUTF8);
  sleep(500);
  S := idClient.Socket.ReadLn(enUTF8);
  memo1.lines.add('Rec: ' + S);
end;                           

服务端 客户端接收到的中文都是乱码,不知为何?有没有解决方法?
回复

使用道具 举报

  • TA的每日心情

    2021-8-18 08:54
  • 签到天数: 1421 天

    [LV.10]以坛为家III

    发表于 2015-11-10 08:56:32 | 显示全部楼层
    Lazarus使用的是UTF8编码,所以字符串要通过AnsiToUTF8以及UTF8ToAnsi进行转换。

    Good Luck~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2015-11-10 10:52:16 | 显示全部楼层
    本帖最后由 sehe 于 2015-11-10 10:53 编辑

    客户端代码修改, 服务端发送给客户端的中文正常,但客户端发给服务端的中文还是乱码
    var
      s: String;
    begin
      s := Edit1.Text;
      memo1.Append('Send: ' + S);
      idClient.Socket.WriteLn(UTF8Decode(s), enUTF8);
      sleep(500);
      S := UTF8Encode(idClient.Socket.ReadLn(enUTF8));
      memo1.lines.add('Rec: ' + S);
    end;                 

    服务端代码加 UTF8Decode  UTF8Encode 也不行,接收客户端的中文都是乱码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

     楼主| 发表于 2015-11-11 18:37:49 | 显示全部楼层
    问题解决,还是编码问题。 UTF8Decode  UTF8Encode 反复测试才得到结果。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2025-2-20 09:24
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    发表于 2025-2-17 17:39:01 | 显示全部楼层
    我今天也遇到了相同的问题,没办法,真的劝退我了
    回复 支持 反对

    使用道具 举报

    *滑块验证:

    本版积分规则

    QQ|手机版|小黑屋|Lazarus中国|Lazarus中文社区 ( 鄂ICP备16006501号-1 )

    GMT+8, 2025-5-1 11:39 , Processed in 0.028268 second(s), 10 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表