【发布时间】:2012-05-14 06:30:17
【问题描述】:
网址:http://www.gagalive.kr/livechat1.swf?chatroom=~~~BBQ
[1]-------------------------------------------------------- ----------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
IdTCPClient.Host := '61.97.246.131';
IdTCPClient.Port := 8080;
IdTCPClient.Connect;
IdTCPClient.IOHandler.Write('Ag8m' + Char(0));
IdTCPClient.IOHandler.Write('LShady|###BBQ' + Char(0));
IdTCPClient.IOHandler.Write('#' + 'Some Text' + Char(0));
IdTCPClient.Disconnect;
end;
[2]-------------------------------------------------------- ----------------------
function UTF8FromUTF16_2(sUTF16: UnicodeString): UTF8String;
begin
Result := sUTF16;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
IdTCPClient.Host := '61.97.246.131';
IdTCPClient.Port := 8080;
IdTCPClient.Connect;
IdTCPClient.IOHandler.Write('Ag8m' + Char(0));
IdTCPClient.IOHandler.Write('LShady|###BBQ' + Char(0));
IdTCPClient.IOHandler.Write(UTF8FromUTF16_2('#' + '안녕' + Char(0)));
IdTCPClient.Disconnect;
end;
[1]:工作
[2] : 不工作(断线> Shady: ??)
见:http://www.gagalive.kr/livechat1.swf?chatroom=~~~BBQ
UTF8FromUTF16 函数原始VB代码:VB 6.0 -> Delphi XE2 Conversion
帮帮我.. :(
【问题讨论】:
-
2 不工作?使用 1。或者描述你的期望和你得到了什么。
-
1. char(0)ansichar(0) 你会想要将 anischar(0) 附加到一个单字节类型 2. write() 真的是 rawbytestring 吗?如果它被声明为字符串,它无论如何都会转换回 UTF16。
-
是的,“不工作”是毫无希望的。您使用的是哪种写重载?弦一?这将转换回 UTF-16。可能需要直接写字节来保留UTF-8。但我猜是因为我实际上不知道出了什么问题。
-
GolezTrol // 亚洲语言 = 2byte
-
IdTCPClient.IOHandler.Write('#' + '안녕' + Char(0));
标签: delphi unicode utf-8 delphi-xe2 indy