比较奇怪 我直接拿 最终要显示的文字 在JAVA里 先stest=new String(stest.getBytes("UTF8"),"GBK"); 再 stest=new String(stest.getBytes("GBK"),"UTF8"); 转换后就是对的(stest开始时赋的值,如“me>华夏</TA”)但是我如果用直接收到的报文(已经是UTF8码),调new String(stest.getBytes("GBK"),"UTF8")就会有部分转的不对。收到的报文呢和上面那段stest=new String(stest.getBytes("UTF8"),"GBK"); 得到的是一样的,但是最后UTF8转GBK就不一样了。希望各位大侠能帮我想想。
解决方案 »
- java比较器,comparator的比较方式
- 如何从API文档中知道方法是否synchronized
- [闭月羞花猫] ~~~~~~~~~~~~~~~~~求一正则表达式~~~~~~~~~~~~~~~~~~~~~~~
- ~help!请问java API文档字段摘要怎么用
- 还是关于jdk1.5泛型的思考,请大家帮忙
- java 随机取出定义数组中的元素且不重复 然后把取出的元素排序 在输出为TXT文本文件
- 如何获取JList中的记录条数
- 请教如何在abstract类前面加上synchronized?
- 第一个APPLET程序 为什么最后一步不能实现
- 这是一个什么错误???
- java中的一个小问题
- 菜鸟求助多态问题
应该用new String(s.getBytes("ISO-8859-1"), "UTF-8");
LANGUAGE=zh_CN.GB18030:zh_CN.GB2312:zh_CN 这个好像是按GBK接收的吧
你直接把那个串 拷贝到UE里面,保存的时候不输扩展名,再打开,你会发现华夏的夏就是对的。
另外我直接在程序里把那串汉字赋给变量,再转成UTF的,和我接收到的报文是一样的。所以接收到的没问题。
这样的话 楼主用new String(stest.getBytes("GBK"),"UTF8")应该没错,
有没有试过new String(stest.getBytes("GB2312"),"UTF8")哦
InputStreamReader reader = new InputStreamReader(it, "UTF-8");