new String(s.getBytes("ISO-8859-1"),"GBK")正确吗 结果中文字符全部变成?(ascii编码为63).原因是iso-8859-1把“每个2Byte的Unicode字符”看成一个字符,中文无法识别。为什么有人要这么用? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没问题,就是将ISO-8859-1字符集的s变量内容转换为GBK字符集类型。这个只有在页面、后台处理程序、数据库3者之间字符集不一致的情况下使用。不是必须的 s.getBytes("ISO-8859-1"),中文字符全部变成?这样有不会有信息丢失吗? 会丢失!String s ="h中";byte[] b = s.getBytes("ISO-8859-1");System.out.println("ISO-8859-1: "+Arrays.toString(b))System.out.println(new String(b));输出:[104, 63]因为一个16Byte的unicode字符 转换后,成为一个8Byte的iso-889-1字符。iso8859-1无法识别中文,故成?. 定会丢失!String s ="h中";byte[] b = s.getBytes("ISO-8859-1");System.out.println("ISO-8859-1: "+Arrays.toString(b));输出:ISO-8859-1: [104, 63]一个2Byte的Unicode字符,变成了一个8byte的iso8859-1字符。is08859-1无法识别中文,故变成‘?’这就丢失了中文信息。 哥们你现在用的是ISO-8859-1编码,可没用GBK啊,当然是乱码了!String s ="h中";byte[] b=s.getBytes("ISO-8859-1"),"GBK");System.out.println("GBK: "+Arrays.toString(b));这样再试试 我也想知道,在超过ASCII范围时显示的那个'?',是真的把内容变成字符'?'了,还是只是这样显示而已,实际值没变? 是真的问号(ascii码63)。由于不识别,转换成了?new String(s.getBytes("iso-8859-1","GBK") ,前提是s已经是乱码了,而且是gbk的乱码,要把它转回来 java.awt.TrayIcon 无法导入 问个有点2的问题 如何在没有路由器只有交换机的情况下建立一个校园网的对战平台 java中静态方法调用非静态变量的问题 新手求教 高手解决的问题------------------结帖超快!!!!!!!! 有没有 java写的欢迎界面呀! 求助大虾,JTextPane的几个问题 java小问题,Frame分为上下两个Panel。没有找到例题,请各位大侠看看. 请问jdbc的thin和 oci是什么意思 如何实现网页模拟操作?? 怎样用调用Process类打开IE窗口时控制数量?
这样有不会有信息丢失吗?
String s ="h中";
byte[] b = s.getBytes("ISO-8859-1");
System.out.println("ISO-8859-1: "+Arrays.toString(b))
System.out.println(new String(b));
输出:
[104, 63]
因为一个16Byte的unicode字符 转换后,成为一个8Byte的iso-889-1字符。iso8859-1无法识别中文,故成?.
byte[] b = s.getBytes("ISO-8859-1");
System.out.println("ISO-8859-1: "+Arrays.toString(b));
输出:
ISO-8859-1: [104, 63]
一个2Byte的Unicode字符,变成了一个8byte的iso8859-1字符。
is08859-1无法识别中文,故变成‘?’
这就丢失了中文信息。
byte[] b=s.getBytes("ISO-8859-1"),"GBK");
System.out.println("GBK: "+Arrays.toString(b));这样再试试
new String(s.getBytes("iso-8859-1","GBK") ,前提是s已经是乱码了,而且是gbk的乱码,要把它转回来