解决WINDOWS SOCKET发送中文字符串到ANDROID SOCKET乱码
WINDOWS SOCKET发送中文字符串到ANDROID SOCKET乱码,是由于异种操作系统造成的,一般中文WINDOWS 可设置为UTF-8内码,Android一般为ANSI内码,故而产生乱码,解决办法是在发送钱把中文字符串进行转吗发送,实现方法如下,用delphi编译:
var
Form1: TForm1;
strQueue:UTF8String;
bClientConnect :boolean=False;
ClientNo: String=‘0’;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Duration:=ini.ReadInteger(‘Duration’,‘mSecond’,3500);
lwSocket.Open;
end;
procedure TForm1.lwSocketAccept(Sender: TObject; Socket: TCustomWinSocket);
var curNo:Integer;
begin
curNo := lwSocket.Socket.ActiveConnections-1;
bClientConnect :=True;
end;
procedure TForm1.lwSocketClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
Name,tempStr,sWindow,sQueue,FirstName:String;
nCourt,nClassic,nWindow,iCurt:Integer;
begin
sQueue :=Utf8Encode('这是中文字符串转吗效果')+#10#13;
if iboxCnt=1 then
lwSocket.Socket.Connections[iboxActiveNo-1].SendText(sQueue)
end;