是不是发送之前就是乱码?
试试
msgTxt=new String (msgTxt.getBytes("ISO-8859-1"),"gb2312");
如果都不行的话,我想问一下,你传输的信息是二进制流还是字符串信息?
如果是byte[]数据流的话,看看在发送之前的将字符串换成byte[]对不对
很可能在这里因为中文字符的length等原因转错了
试试
msgTxt=new String (msgTxt.getBytes("ISO-8859-1"),"gb2312");
如果都不行的话,我想问一下,你传输的信息是二进制流还是字符串信息?
如果是byte[]数据流的话,看看在发送之前的将字符串换成byte[]对不对
很可能在这里因为中文字符的length等原因转错了
解决方案 »
- 请教一个java内存的问题,软件占用内存非常高
- Exception in thread "main" java.lang.NullPointerException
- ### 【转载】Java调用SQL Server的存储过程详解
- Button的大小用什么方法设置
- GridBagLayout布局管理器为什么还是不能固定按钮的大小啊~~~~~~~~~~~~``疯了!!!!
- 关于方法中参数的传递问题?
- ByteArrayInputStream 如何转化成 String
- 帮帮初学者!谢谢!
- 如何把用jdbc查出的resultset结果集数据通过网络发送到另一台机器上(给100分)
- 开平方是哪个函数??
- oxfordxy 谢谢 你的资料 请你来接分
- 有个问题:JDBC 连接 ORACLE哪有资料下载?
1.String ->byte[] ,byte[] -> String (编码相关)
2.数据传输.其中最好不要与编码相关.
你可先在本地把String用编码转为byte[],再相应转回来,看行不行.
行了在做传输的工作,保证传的和接收的一致.
另外
如果真的做了byte[] -> String 和 String -> byte[]的转换的话,千万要注意在java里面,中文字符虽然是两个字节,但是它的长度(在String.length()中)却还是1,所以一个中文字符必须用两个byte来存放,但转换的时候若不小心就会失真。
我第一次处理这方面的数据时,就出过错。
String s = "";
byte[] data = s.getBytes( "UTF8" );
然后把data发出去接受端:
byte[] data = ...; //接受到的数据
String s = new String( data, "UTF8" );