黑马程序员技术交流社区

标题: 编码中的小问题,求解答!!!! [打印本页]

作者: fufeng    时间: 2014-4-29 23:52
标题: 编码中的小问题,求解答!!!!
  1. class  EncodeDemo
  2. {
  3.         public static void main(String[] args) throws Exception
  4.         {
  5.                 String s = "你好";

  6.                 byte[] b1 = s.getBytes();
  7.                
  8.                 System.out.println(Arrays.toString(b1));

  9.                 System.out.println(new String(b1,"UTF-8"));
  10.         }
  11. }
复制代码

该程序是用默认GBK编码“你好”,得到的数组中有四个字节,然后用UTF-8解码,按道理说,会出现
两个??,但是运行后的结果为什么是???,三的问号
作者: 来男.    时间: 2014-4-30 01:03
我觉得那四个字节找不到对应字符时,就去“未知字符区”找了,至于“?”的个数就不确定了..依那个“区”对照后的结果而定。你看String s = "哈哈"时,还出现四个“?”呢,数量不确定。
纯属个人理解。
作者: fei_xiong    时间: 2014-4-30 10:05
GBK编码是一次性读取的三个字节,UTF-8一次读取两个字节,于是就出现了,GBK的两个字,如果换成UTF-8读取的话会显示三个字符的情况




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2