一.GBK与UTF8的比较
GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。
至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。对于英文字符较多的论坛则用UTF-8节省空间。
GBK包含全部中文字符;
UTF-8则包含全世界所有国家需要用到的字符。
GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准)
UTF-8编码的文字可以在各国各种支持UTF8字符集的浏览器上显示。
比如,如果是UTF8编码,则在外国人的英文IE上也能显示中文,而无需他们下载IE的中文语言支持包。 所以,对于英文比较多的论坛 ,使用GBK则每个字符占用2个字节,而使用UTF-8英文却只占一个字节。
UTF8是国际编码,它的通用性比较好,外国人也可以浏览论坛
GBK是国家编码,通用性比UTF8差,不过UTF8占用的数据库比GBK大~
对于DZ论坛来说,很多插件都只支持GBK的,如果需要装较多插件的论坛还是用GBK比较好,而对装较少插件且有特殊用户群的论坛用UTF8比较好。
二.为什么选择UTF8,原因有2个:
1.因为要国际化嘛,选择UTF8可以很好地兼容其他国家语言,对台湾的繁体字也能很好地支持,GBK就比较难
2.数据库的可移植性,大部分数据库对UTF8都有很好地支持
三.需要统一字符集的地方
1.首先开发工具,如MyEclipse,JB,Eclipse等,都可设置编辑的字符集
2.众所周知的页面字符集设置
在JSP头部声明:
<%@ page contentType="text/html;charset= UTF-8" %>
在Jsp的html代码中,声明UTF-8:
<META http-equiv="Content-Type" CONTENT="text/html; charset=utf-8">
3.过滤器
public class TianYaActionServlet extends ActionServlet {
private static final long serialVersionUID = 1L;
protected void process(HttpServletRequest request,
HttpServletResponse response) throws java.io.IOException,
javax.servlet.ServletException {
// TODO Override this org.apache.struts.action.ActionServlet method
request.setCharacterEncoding("UTF-8");//������
super.process(request, response);
}
}
wml配置
<servlet-class>
com.TianYa.common.util.TianYaActionServlet
</servlet-class>
这样就不用总写request.setCharacterEncoding("UTF-8");
4.如果个别需要转为其它字符集的用new String(yourString.getBytes("ISO-8859-1"),"UTF-8");
5.容器设置,如Tomcat
这里要注意form表单的method,Post与get字符集编码可能不同,Tomcat5.0以下的是相同的,以上的是不同的
Post可以通过过滤器设置
get一般是URL传参:
Tomcat 5.0.28 - 发布目录 webapps
修改conf/server.xml文件中的
<Connector port="8080" .... />
增加对GET方法获取数据时的编码设置参数 URIEncoding='GBK'
<Connector port="8080" .... URIEncoding='GBK'/>
JBOSS 4.0.2 - 发布目录 server/default/deploy (后缀.war)
修改server/default/deploy/jbossweb-tomcat55.sar/server.xml文件中的
<Connector port="8080" .... />
增加对GET方法获取数据时的编码设置参数 URIEncoding='GBK'
<Connector port="8080" .... URIEncoding='GBK'/>
7.数据库字符集设置
不同数据库字符集设置不同,我这就不一一介绍了
mySQL可以连接数据库的URL设定jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
分享到:
相关推荐
J2EE中文乱码完全攻略,让你轻松处理中文乱码问题
J2ee应用中文乱码问题解决方案.doc
j2ee中文乱码问题的解决方法,常用于数据库与服务器之间传值,脚本与JSP页面传值,JSP与JAVA代码之间的传值等。
j2ee项目中中文乱码问题集锦 》》》》 6 如果用Eclipse开发,把工程编码改为utf-8 7 用myeclipse提供的数据库前端工具,URL也进行设置 jdbc:mysql://localhost:3306/mysql?useUnicode=true&;characterEncoding=...
Java j2EE项目中,乱码问题,主要出现在三个方面: 1.中文展现的乱码问题 2.中文写入数据库乱码问题 3.参数传递的乱码问题 本文档对这三部分如何处理乱码都有详细的说明。
J2EE中文乱码问题终极解决之道 如果看了这个文件之后你还解决不了乱码问题 那就不是我的问题了
J2EE api 中文版,如出现乱码请将编码改为UTF-8后即可.
J2EE中文API.CHM ,如果出现打开是乱码问题,可以修改IE浏览器编码方式
针对java web开发方面中文乱码情况的总结,基本各种情况都有了!
本文档含有四种解决struts中出现的中文乱码的方法,只要按步骤,一定可以使用,非常经典哦
网上找了很多所谓的j2ee api 中文版,结果不是j2se的就是英文的,还有的竟然是乱码~~花了很多时间才找到这个真正的中文版,希望大家会喜欢
开发基于J2EE+SSM框架的信息管理系统中遇到的问题及其解决办法 eg:Navicat过期 Tomact发布 中文乱码等等
亲切的口吻,简洁的方式,全面介绍了JAVA技术中出现中文乱码的解决方案
这里总结了我在j2ee开发过程中,中文乱码的解决方案。希望能够帮到大家!
在利用Servlet/JSP技术开发java Web应用程序的时候,不可避免的会遇到中文乱码问题,本文首先介绍了Web应用中常用的编码方式,然后分析了J2EE平台下Web应用中文乱码问题产生的原因,并在此基础上针对不同情况提出了解决...
哎,终于做成.chm格式的J2EE中文帮助文档了,上传上来共享给大家~,有问题的希望指点出来哟,我第一次作这个东西的,呵呵 浏览的时候可能会出现乱码,不要紧,打开IE,吧编码方式编程unicode或者自动选择就可以了
一个DOC文档,在网上搜索并自己实验过的,解决JSP中文乱码问题。对于J2EE 的初学者有用!
JSP与MySQL交互的中文乱码解决方案
解决properties乱码 j2ee只要将该文件复制到你的文件中输入要处理的的文件的路径和要输入的内容运行就可以解决中文乱码问题