JAVA delphi socket 通信

wu209000 2010-01-14 04:31:30
主要是中文怎么处理

delphi做服务端,具体的解析代码为:

var buf 保存的是接收到的byte数据

function DecodeUTF8(var buf:array of Byte;StartPosition,Len:Integer):string;
var
i:Integer;
m:String;
begin
m:='';
FOR i:=0 TO len-1 DO
m:=m+chr(buf[i+StartPosition+1]);
Result:=UTF8Decode(m);
end;

function Utf8Decode(const S: UTF8String): WideString;
var
L: Integer;
Temp: WideString;
begin
Result := '';
if S = '' then Exit;
SetLength(Temp, Length(S));

L := Utf8ToUnicode(PWideChar(Temp), Length(Temp)+1, PChar(S), Length(S));
if L > 0 then
SetLength(Temp, L-1)
else
Temp := '';
Result := Temp;
end;



JAVA做客户端怎么发过去才能让它解析出正常的中文呢
Socket socket = new Socket(server, port);

String message = "中文";

//怎么发送
...全文
259 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
wu209000 2010-01-15
  • 打赏
  • 举报
回复
传中文过去都是返回空, 只有传普通字符串才有结果
bayougeng 2010-01-15
  • 打赏
  • 举报
回复
呵呵,有个比较笨点的办法。
你用java发个“你好”过去。
从服务器端解析出来的字符串是什么?就算乱码总的有个东西出来吧。
然后在java里试试用别的编码来解析“你好”。
看看怎么解析能得到Delphi得到的乱码。
接下来的就好办了。
wu209000 2010-01-15
  • 打赏
  • 举报
回复
那怎么去判断啊?
APOLLO_TS 2010-01-15
  • 打赏
  • 举报
回复
那个可就痛苦了,主要是信息格式互换。wideString
4Bytes,UTF-8 汉字基本三字节,你要找一个优秀的转化方法才行。目前delphi我也不会了。
wu209000 2010-01-15
  • 打赏
  • 举报
回复
传byte数组过去了,普通字符是可以正常转换,但中文的就是不行
bayougeng 2010-01-15
  • 打赏
  • 举报
回复
无论用什么语言,你从网络中传递的都是二进制数据。与具体的语言没有关系。
你得到的数据时乱码么?
wu209000 2010-01-15
  • 打赏
  • 举报
回复
delphi自带的UTF-8转换的方法是不是不支持JAVA的啊,怎么转都不成功
wu209000 2010-01-15
  • 打赏
  • 举报
回复
貌似要转成UTF-16LE 不过还是不行
wu209000 2010-01-15
  • 打赏
  • 举报
回复
都试过了,不行,还是不能解析出中文
我想不明白这个具体是怎么转换的,它能把什么样的字符串解析成中文,Temp变量里面应该存什么才可以是中文
Utf8ToUnicode(PWideChar(Temp), Length(Temp)+1, PChar(S), Length(S));
javayisheng 2010-01-15
  • 打赏
  • 举报
回复
学习………………
weihthchk 2010-01-15
  • 打赏
  • 举报
回复
socket.getOutputStream().write(message.getBytes("UTF-8"));
wu209000 2010-01-14
  • 打赏
  • 举报
回复
试了,都没得
bayougeng 2010-01-14
  • 打赏
  • 举报
回复
记得java默认将中文保存成utf-8。你可以直接发这个字符串的,不行再转码。
wu209000 2010-01-14
  • 打赏
  • 举报
回复
服务器是已经定好的,不能改
就是客户端怎么发
bayougeng 2010-01-14
  • 打赏
  • 举报
回复
是啊是啊,都用utf-8就行了。
wu209000 2010-01-14
  • 打赏
  • 举报
回复
上面就是他们接收后处理的源码了,JAVA客户端应该怎么发
healer_kx 2010-01-14
  • 打赏
  • 举报
回复
那边是UTF8,我们也UTF8呗。。。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧