在android网络编程中遇到的接收中文字符乱码问题 最近在写一个服务器程序,其功能是接收手机端所发来的信息,并将其直接写入数据库中。但是在开发过程中,发现从客户端接收英文是可以正常接收显示的,但是一接收中文就会出现乱码问题,并且在写入数据库的相应数据也是乱码的。小弟呗这个问题卡了2天了,希望能够得到各位大神的指点。感激感激。。接收中文乱码Android乱码网络编程服务器 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 客户端"Data".getBytes("UTF-8")服务端new String(data, "UTF-8")如果不行把数据库的编码也变成“UTF-8”领会精神吧 传输中文的时候需要转码啦,encode 在不用以上方法的前提下 在服务器接收数据是“浣犲ソ.鐢?” 我发送的是“你好,男”在使用的情况下接收到的是“[B@4053f5b[B@4053f5b0[B@4053f5b0”;请给点指点 服务器接收的数据应该是byte数组吧?“[B@4053f5b”这应该是byte数组的toString显示的东西,先把byte数组转换成字符串,用这个构造函数:java.lang.String.String(byte[], String)另外,客户端发送的数据是用户输入的吗?如果是从别的地方读取的数据,那编码就不好说了。 服务器接收的数据应该是byte数组吧?“[B@4053f5b”这应该是byte数组的toString显示的东西,先把byte数组转换成字符串,用这个构造函数:java.lang.String.String(byte[], String)另外,客户端发送的数据是用户输入的吗?如果是从别的地方读取的数据,那编码就不好说了。恩接收的是byte数组,数据也是用户自己输入的。java.lang.String.String(byte[], String)这个函数怎么用呢,貌似这个对我有点陌生了呵呵,我用tostring方法把字节数组转成了字符串了,但是输出的还是[B@4053f5b,还有就是刚才我在客户端没用UTF8服务器接收的时候用了new String(data, "UTF-8")结果发了三句话一句半句能正常显示另一半就不能了?请大神指点一二。。谢谢 byte[].toString()不是用来将byte[]转换成字符串的。要用new String(byte[], "UTF-8")来转换成字符串。三句话一句半正常,估计是你发送的时候把字符串截断了吧…… 服务器接收的数据应该是byte数组吧?“[B@4053f5b”这应该是byte数组的toString显示的东西,先把byte数组转换成字符串,用这个构造函数:java.lang.String.String(byte[], String)另外,客户端发送的数据是用户输入的吗?如果是从别的地方读取的数据,那编码就不好说了。恩接收的是byte数组,数据也是用户自己输入的。java.lang.String.String(byte[], String)这个函数怎么用呢,貌似这个对我有点陌生了呵呵,我用tostring方法把字节数组转成了字符串了,但是输出的还是[B@4053f5b,还有就是刚才我在客户端没用UTF8服务器接收的时候用了new String(data, "UTF-8")结果发了三句话一句半句能正常显示另一半就不能了?请大神指点一二。。谢谢服务器接收的数据应该是byte数组吧?“[B@4053f5b”这应该是byte数组的toString显示的东西,先把byte数组转换成字符串,用这个构造函数:java.lang.String.String(byte[], String)另外,客户端发送的数据是用户输入的吗?如果是从别的地方读取的数据,那编码就不好说了。恩接收的是byte数组,数据也是用户自己输入的。java.lang.String.String(byte[], String)这个函数怎么用呢,貌似这个对我有点陌生了呵呵,我用tostring方法把字节数组转成了字符串了,但是输出的还是[B@4053f5b,还有就是刚才我在客户端没用UTF8服务器接收的时候用了new String(data, "UTF-8")结果发了三句话一句半句能正常显示另一半就不能了?请大神指点一二。。谢谢客户端的写入流代码k1=(length/256); k2=(length/256)/256; k3=(length/256)/256/256; header[3]=(byte) k3; header[2]=(byte) (k2-k3*256); header[1]=(byte) (k1-k2*256-k3*256*256); header[0]=(byte) (length-k1*256-k2*256*256-k3*256*256*256); bw.write(header);服务器读流代码is.read(header1,0,4);String b=new String(header1,0,4); byte[].toString()不是用来将byte[]转换成字符串的。要用new String(byte[], "UTF-8")来转换成字符串。三句话一句半正常,估计是你发送的时候把字符串截断了吧……现在客户端写入byte 数组的数据在本地通过for循环一个一个打印里面内容正确,但是 String l=new String(header,"UTF-8"); (header就是数组)System.out.println(l);打印就是“□□□□□□”要是用tostring方法输出就是[B@4053f5b。在服务器方面我要是收到多于2个中文能正常显示内容但是尾巴后面会加上两个“??”要是收到一个中文字符又是乱码了。 byte[].toString()不是用来将byte[]转换成字符串的。要用new String(byte[], "UTF-8")来转换成字符串。三句话一句半正常,估计是你发送的时候把字符串截断了吧……现在客户端写入byte 数组的数据在本地通过for循环一个一个打印里面内容正确,但是 String l=new String(header,"UTF-8"); (header就是数组)System.out.println(l);打印就是“□□□□□□”要是用tostring方法输出就是[B@4053f5b。在服务器方面我要是收到多于2个中文能正常显示内容但是尾巴后面会加上两个“??”要是收到一个中文字符又是乱码了。昨天问题在你指导下解决了很多,但是现在出现了接收偶数个中文能正常显示,接收奇数个就不能了,比如穿3个子前两个可以正常显示第三个就不行了,这是什么原因呢,请您赐教下,谢谢了。 SQLite执行sql语句出错。。。。。。。。。 GridView BaseAdapter 求解 Android 提示气泡带尾巴 android so 库如何调用其他库里的函数或变量? 动画的android_startOffset无效.rtf Android Sensor的问题 WCF返回JSON绑定Listview出错 Android怎么检测的自己的程序更新安装完成 android 连接ftp服务器,连接失败 安卓开发,sqlite中如何查询某一特定行的所有数据? cocos2d-x中关于android编译的疑问 分享个当连续建相同的控件的时候的方法,顺便讨教下一些问题。。。
服务端new String(data, "UTF-8")
如果不行把数据库的编码也变成“UTF-8”
领会精神吧
在使用的情况下接收到的是“[B@4053f5b[B@4053f5b0[B@4053f5b0”;请给点指点
服务器接收的数据应该是byte数组吧?“[B@4053f5b”这应该是byte数组的toString显示的东西,先把byte数组转换成字符串,用这个构造函数:java.lang.String.String(byte[], String)另外,客户端发送的数据是用户输入的吗?如果是从别的地方读取的数据,那编码就不好说了。
服务器接收的数据应该是byte数组吧?“[B@4053f5b”这应该是byte数组的toString显示的东西,先把byte数组转换成字符串,用这个构造函数:java.lang.String.String(byte[], String)另外,客户端发送的数据是用户输入的吗?如果是从别的地方读取的数据,那编码就不好说了。恩接收的是byte数组,数据也是用户自己输入的。java.lang.String.String(byte[], String)这个函数怎么用呢,貌似这个对我有点陌生了呵呵,我用tostring方法把字节数组转成了字符串了,但是输出的还是[B@4053f5b,还有就是刚才我在客户端没用UTF8服务器接收的时候用了new String(data, "UTF-8")结果发了三句话一句半句能正常显示另一半就不能了?请大神指点一二。。谢谢
byte[].toString()不是用来将byte[]转换成字符串的。
要用new String(byte[], "UTF-8")来转换成字符串。三句话一句半正常,估计是你发送的时候把字符串截断了吧……
服务器接收的数据应该是byte数组吧?“[B@4053f5b”这应该是byte数组的toString显示的东西,先把byte数组转换成字符串,用这个构造函数:java.lang.String.String(byte[], String)另外,客户端发送的数据是用户输入的吗?如果是从别的地方读取的数据,那编码就不好说了。恩接收的是byte数组,数据也是用户自己输入的。java.lang.String.String(byte[], String)这个函数怎么用呢,貌似这个对我有点陌生了呵呵,我用tostring方法把字节数组转成了字符串了,但是输出的还是[B@4053f5b,还有就是刚才我在客户端没用UTF8服务器接收的时候用了new String(data, "UTF-8")结果发了三句话一句半句能正常显示另一半就不能了?请大神指点一二。。谢谢
服务器接收的数据应该是byte数组吧?“[B@4053f5b”这应该是byte数组的toString显示的东西,先把byte数组转换成字符串,用这个构造函数:java.lang.String.String(byte[], String)另外,客户端发送的数据是用户输入的吗?如果是从别的地方读取的数据,那编码就不好说了。恩接收的是byte数组,数据也是用户自己输入的。java.lang.String.String(byte[], String)这个函数怎么用呢,貌似这个对我有点陌生了呵呵,我用tostring方法把字节数组转成了字符串了,但是输出的还是[B@4053f5b,还有就是刚才我在客户端没用UTF8服务器接收的时候用了new String(data, "UTF-8")结果发了三句话一句半句能正常显示另一半就不能了?请大神指点一二。。谢谢
客户端的写入流代码k1=(length/256);
k2=(length/256)/256;
k3=(length/256)/256/256;
header[3]=(byte) k3;
header[2]=(byte) (k2-k3*256);
header[1]=(byte) (k1-k2*256-k3*256*256);
header[0]=(byte) (length-k1*256-k2*256*256-k3*256*256*256);
bw.write(header);
服务器读流代码is.read(header1,0,4);String b=new String(header1,0,4);
byte[].toString()不是用来将byte[]转换成字符串的。
要用new String(byte[], "UTF-8")来转换成字符串。三句话一句半正常,估计是你发送的时候把字符串截断了吧……现在客户端写入byte 数组的数据在本地通过for循环一个一个打印里面内容正确,但是 String l=new String(header,"UTF-8"); (header就是数组)System.out.println(l);打印就是“□□□□□□”要是用tostring方法输出就是[B@4053f5b。在服务器方面我要是收到多于2个中文能正常显示内容但是尾巴后面会加上两个“??”要是收到一个中文字符又是乱码了。
byte[].toString()不是用来将byte[]转换成字符串的。
要用new String(byte[], "UTF-8")来转换成字符串。三句话一句半正常,估计是你发送的时候把字符串截断了吧……现在客户端写入byte 数组的数据在本地通过for循环一个一个打印里面内容正确,但是 String l=new String(header,"UTF-8"); (header就是数组)System.out.println(l);打印就是“□□□□□□”要是用tostring方法输出就是[B@4053f5b。在服务器方面我要是收到多于2个中文能正常显示内容但是尾巴后面会加上两个“??”要是收到一个中文字符又是乱码了。昨天问题在你指导下解决了很多,但是现在出现了接收偶数个中文能正常显示,接收奇数个就不能了,比如穿3个子前两个可以正常显示第三个就不行了,这是什么原因呢,请您赐教下,谢谢了。