中文乱码之玄机

相信我们在编程的时候都出现过乱码问题吧!都也解决了!
但是又有几个人知道其中的玄机呢?

1.为什么出现乱码?
2.为什么会出现诸如“??”,“口口”这样的字符呢?
3.乱码原理有是什么呢?

小弟深思不得其解...请各位留下对乱码的看法,及自己的解决方案,访问不限..
谢谢 大哥,大姐

不考虑2进制,数据是通过字节来组合的,不同的编码格式,对每个字符采用的字节数不一样,比如ASCII是1个字节,UTF-8对于中文是3个字节,这样不同编码对于同一字节流,最后解析出来的字符数就不不一样,如果这个解析出来的字符在该编码集中找不到对应的,就出现了乱码,有时候,可能是这个字符在这个编码中本身就对应的类似于乱码的字符

出现乱码是常见的! :wink:
原因很多!情况也很多种!
常见的是: 数据库 ,web容器(如tomcat), 页面
这三者的字符编码设置不一致 导致的 乱码!
乱码其实就是 字符集 之间的 转换 造成的!
比如 utf-8 转成 GBK 直接转 可能就出现了乱码 口口”这样的字符呢
乱的比较厉害的 是就全 ????? 了

一般处理方法: 1.0 项目中统一 字符集 如 utf-8
2.0 字符集过滤器 如spring自带的
[quote]


CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter



encoding

GBK





[/quote]

个人愚见!希望能帮到你! :wink:

这样的问题,我觉得还是上GOOGLE搜一下比较好.
这里又不是论坛,没那么多过来谈感想的

[quote]
这个东东只能过滤post的 不能过滤get的..
[/quote]

你确定它 只过滤 post??

在从页面得到后的值也可以这样:
new String(("要转换字符的字符串").getBytes()),"UTF-8");