在unix下面如何将UTF-8转换成中文编码然后发送出去?
我用了new String(str.getBytes("UTF-8"),"GBK")或者new String(str.getBytes("UTF-8"))都不行!
如何实现呢? 知道的人能告诉一下吗?先谢谢了
我用了new String(str.getBytes("UTF-8"),"GBK")或者new String(str.getBytes("UTF-8"))都不行!
如何实现呢? 知道的人能告诉一下吗?先谢谢了
但如果你要在linux上显示中文,要用
export LANG=zh_CN
然后我用new String(str.getBytes("UTF-8"),"GBK")或者 new String(str.getBytes("UTF-8"),"ISO-8859-1") 转换,然后发送过去,还是乱码..
怎么办?
1.你要发送的字符串是否的确是utf-8的?
2.对方接收时是否转码了?
3.乱码(是在对方机上显示吧),那对方当前的语言集是什么?
我要发送的字符串确实是utf-8的,因为是从xml中解析出来的,那个xml本身的编码格式也是utf-8。
对方接收时候没有转码。
乱码是在对方的机器上显示的,对方是unix,用的是默认的语言集,应该是ISO-8859-1吧,我之前传过去的都收的到。
在windows下:
msg = new String(msg.getBytes("GB2312"), "UTF-8");
System.out.println(msg);//乱码,这个正常,因为windwos的console不支持UTF-8
msg = new String(msg.getBytes("UTF-8"), "GB2312");
System.out.println(msg);//乱码,转不回来了
目前还没有找到好的方法
如果你实在找不到好的解决方案,可将你的xml用unix的iconv转成GBK的,格式如下:
iconv -f UTF-8 -t CN-GB -o new.xml old.xml
可用java的Runtime.getRuntime().exec来执行
但是局方的网管监控是传一个utf-8编码格式的xml字符串给我解析,并不是xml文件。
我又无法叫他去改xml串的编码。
是解析xml字符串,那有什么好的办法呢?
所以,有一个损办法:先将转过来的字串存成一临时文件,用iconv转成另一文件后再读入java
keiy,太谢谢呢