我用了new String(str.getBytes("UTF-8"),"GBK")或者new String(str.getBytes("UTF-8"))都不行!
如何实现呢? 知道的人能告诉一下吗?先谢谢了
12 个解决方案
#1
有人知道么?
#2
大家帮帮忙啊~~~~~~~~~~~
#3
我也想了解,帮你顶。
#4
按理用new String(str.getBytes("UTF-8"),"GBK")应该没问题
但如果你要在linux上显示中文,要用
export LANG=zh_CN
但如果你要在linux上显示中文,要用
export LANG=zh_CN
#5
但是,这里的unix只是一个中间转发的服务器,我还要转给另外一台unix服务器
然后我用new String(str.getBytes("UTF-8"),"GBK")或者 new String(str.getBytes("UTF-8"),"ISO-8859-1") 转换,然后发送过去,还是乱码..
怎么办?
然后我用new String(str.getBytes("UTF-8"),"GBK")或者 new String(str.getBytes("UTF-8"),"ISO-8859-1") 转换,然后发送过去,还是乱码..
怎么办?
#6
我觉得有以下几个问题
1.你要发送的字符串是否的确是utf-8的?
2.对方接收时是否转码了?
3.乱码(是在对方机上显示吧),那对方当前的语言集是什么?
1.你要发送的字符串是否的确是utf-8的?
2.对方接收时是否转码了?
3.乱码(是在对方机上显示吧),那对方当前的语言集是什么?
#7
呵呵 楼上的问的好,谢谢!
我要发送的字符串确实是utf-8的,因为是从xml中解析出来的,那个xml本身的编码格式也是utf-8。
对方接收时候没有转码。
乱码是在对方的机器上显示的,对方是unix,用的是默认的语言集,应该是ISO-8859-1吧,我之前传过去的都收的到。
我要发送的字符串确实是utf-8的,因为是从xml中解析出来的,那个xml本身的编码格式也是utf-8。
对方接收时候没有转码。
乱码是在对方的机器上显示的,对方是unix,用的是默认的语言集,应该是ISO-8859-1吧,我之前传过去的都收的到。
#8
如果你以前传的都是正确的,且传送过程中没有任可问题的话,那就可能是java本身的问题了,以前就碰到过此类问题(JAVA有时转码会不正确)
在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来执行
在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来执行
#9
楼上的朋友,真感谢你帮我想办法。说不定真是java的问题。
但是局方的网管监控是传一个utf-8编码格式的xml字符串给我解析,并不是xml文件。
我又无法叫他去改xml串的编码。
是解析xml字符串,那有什么好的办法呢?
但是局方的网管监控是传一个utf-8编码格式的xml字符串给我解析,并不是xml文件。
我又无法叫他去改xml串的编码。
是解析xml字符串,那有什么好的办法呢?
#10
还有一招,自已找资料写一个UTF-8到GBK的解码器
#11
当然,这个方法的工作量也太大了,虽然有码表(iconv是开源的,它有C的全部源码,包括utf8转gbk的),为一小小的转换编一个大程序实在有些不值
所以,有一个损办法:先将转过来的字串存成一临时文件,用iconv转成另一文件后再读入java
所以,有一个损办法:先将转过来的字串存成一临时文件,用iconv转成另一文件后再读入java
#12
呵呵 我也想到过用这个办法 看来最后只有用这招呢
keiy,太谢谢呢
keiy,太谢谢呢
#1
有人知道么?
#2
大家帮帮忙啊~~~~~~~~~~~
#3
我也想了解,帮你顶。
#4
按理用new String(str.getBytes("UTF-8"),"GBK")应该没问题
但如果你要在linux上显示中文,要用
export LANG=zh_CN
但如果你要在linux上显示中文,要用
export LANG=zh_CN
#5
但是,这里的unix只是一个中间转发的服务器,我还要转给另外一台unix服务器
然后我用new String(str.getBytes("UTF-8"),"GBK")或者 new String(str.getBytes("UTF-8"),"ISO-8859-1") 转换,然后发送过去,还是乱码..
怎么办?
然后我用new String(str.getBytes("UTF-8"),"GBK")或者 new String(str.getBytes("UTF-8"),"ISO-8859-1") 转换,然后发送过去,还是乱码..
怎么办?
#6
我觉得有以下几个问题
1.你要发送的字符串是否的确是utf-8的?
2.对方接收时是否转码了?
3.乱码(是在对方机上显示吧),那对方当前的语言集是什么?
1.你要发送的字符串是否的确是utf-8的?
2.对方接收时是否转码了?
3.乱码(是在对方机上显示吧),那对方当前的语言集是什么?
#7
呵呵 楼上的问的好,谢谢!
我要发送的字符串确实是utf-8的,因为是从xml中解析出来的,那个xml本身的编码格式也是utf-8。
对方接收时候没有转码。
乱码是在对方的机器上显示的,对方是unix,用的是默认的语言集,应该是ISO-8859-1吧,我之前传过去的都收的到。
我要发送的字符串确实是utf-8的,因为是从xml中解析出来的,那个xml本身的编码格式也是utf-8。
对方接收时候没有转码。
乱码是在对方的机器上显示的,对方是unix,用的是默认的语言集,应该是ISO-8859-1吧,我之前传过去的都收的到。
#8
如果你以前传的都是正确的,且传送过程中没有任可问题的话,那就可能是java本身的问题了,以前就碰到过此类问题(JAVA有时转码会不正确)
在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来执行
在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来执行
#9
楼上的朋友,真感谢你帮我想办法。说不定真是java的问题。
但是局方的网管监控是传一个utf-8编码格式的xml字符串给我解析,并不是xml文件。
我又无法叫他去改xml串的编码。
是解析xml字符串,那有什么好的办法呢?
但是局方的网管监控是传一个utf-8编码格式的xml字符串给我解析,并不是xml文件。
我又无法叫他去改xml串的编码。
是解析xml字符串,那有什么好的办法呢?
#10
还有一招,自已找资料写一个UTF-8到GBK的解码器
#11
当然,这个方法的工作量也太大了,虽然有码表(iconv是开源的,它有C的全部源码,包括utf8转gbk的),为一小小的转换编一个大程序实在有些不值
所以,有一个损办法:先将转过来的字串存成一临时文件,用iconv转成另一文件后再读入java
所以,有一个损办法:先将转过来的字串存成一临时文件,用iconv转成另一文件后再读入java
#12
呵呵 我也想到过用这个办法 看来最后只有用这招呢
keiy,太谢谢呢
keiy,太谢谢呢