相信我们在编程的时候都出现过乱码问题吧!都也解决了!
但是又有几个人知道其中的玄机呢?1.为什么出现乱码?
2.为什么会出现诸如“??”,“口口”这样的字符呢?
3.乱码原理有是什么呢?小弟深思不得其解...小弟跪求各位留下自己的看法..
谢谢 大哥,大姐

解决方案 »

  1.   

    用过滤器!!!页面编码格式统一为国际编码UTF-8保证不会出现乱码
      

  2.   

    1:计算机在把字母汉字等等处理时是按二进制的。而十六进制跟二进制互换相当容易。人们为了学习理解简单,通常按十六进制。
    2: unicode,十六进制。按编码规则不一样,同样的十六进制,在gbk里,他能对应到相应的汉字,因为gbk里对那些十六进制做了规定,对定他就是那个汉字。而在其他里边如 iso- - 那边,他们(编码人)认为不会出现那些十六进制,因为英语里不会出现这种十六进制,所以就没有对他们进行规定,就出现乱七八糟的东西。
    3:以上回答不专业,纯属个人理解。
      

  3.   

    在这个帖子的 60 和 62 楼有一些乱码原因分析及解决方案,以及如何猜测是何种原因导致的乱码。
    http://topic.csdn.net/u/20100608/16/DDB9CBE6-3320-4270-BF93-72D9C0885524.html下面这些帖子是我曾经回复过关于编码的问题,有兴趣的话可以去看一下:还是编码问题!!!!
    http://topic.csdn.net/u/20080806/11/5d8b4bae-c863-4d75-89ef-eea110feaf1e.html
    关于 String#getBytes 得到字节数的问题url中文参数传递乱码,搞不明白!
    http://topic.csdn.net/u/20080910/16/269beb9e-9fce-44a6-bc1c-f0fcf56f708f.html
    在 21 楼下半部分分析了编码是如何转换的求一字符串x
    http://topic.csdn.net/u/20080623/16/e0f44f00-eaf9-4d38-b325-a3cc443f2ec9.html
    在 11 楼有 Unicode 字符集与 UTF-8 编码如何转换,以及其他关于编码的知识
      

  4.   

    (在计算机内部,所有数都是以二进制的方式存储的)举个例子:
    中文字符: 乱码UTF-8的编码是 0000 1111(仅是示例,事实上并不是这样)
    但是到了其他编码 可能就是  1111 0000 或许 0101 0000的。 但是,计算机不管你是什么编码,但是按照着他的读取顺序来读取。然后显示的时候根据相应的编码来显示(解析编码)。 所以, 不同的编码实际上的存储方式和解析编码的方式是不一样的。你用了UTF-8的编码来写,但是又用 GBK的来读,所得到的二进制数或者解析的时候转换之后得到的二进制数都是不一样的。这样,当然显示出来也就不一样了。   
       上面只是个人理解。