|
多种语言(big5\gbk\gb2312\utf8\Shift_JIS\iso8859-1)的网页编码切换解决方案归纳
1、response.setContentType("text/html; charset=GB2312"); 或者response.setContentType("text/html; charset=UTF-8"); charset前面留一个空格 2、头文件包含 3、 一般处理是将在网页上提交的中文转码为Unicode存储在数据库中,取出来的 时候,用自动转码(ContentType=”text/html;charset=gb2312”或ContentType=”text/html;charset=big5”)的方式输出到网页。 4、得到一个字符串时,你必须知道是GB编码还是BIG5编码的,然后GB编码就用:strTMP = new String(strTMP.getBytes(),"GBK"),BIG5编码就:strTMP = new String(strTMP.getBytes(),"BIG5"),这样就可以把源字符串全转换为UNICODE,编码统一以后就能解决简繁体同屏显示的问题了。 5、方法1是jsp中所有的标签和数据都存储在数据库中,用户选哪种语言就从库中选对应的数据进行展示; 方法2是使用几个MessageBuddle.properties文件进行定义所有的label,jsp的lable使用定义的label参数,这样通过切换properties文件就可以轻松实现国际化,而jsp文件勿需做任何改变. 一种语言一个配置文件 默认根据浏览器使用语言判断 select语言改变是重新加载配置文件 6、Struts中是不能完全实现的。因为Struts只可以国际化标签。而内容数据还是应该在数据库中设置。 设置一个字段Number(1) lang ,中文为1,英文为2,日文为3 等等 在提取数据的SQL语句中做判断。这样比较实际点。 7、 transform.js 复制代码 代码如下: <script type="text/javascript" language="javascript" src="<%= request.getContextPath() %>/js/transform.js"></script> <script type="text/javascript" language="javascript"> function s2t() {document.body.innerHTML = document.body.innerHTML.s2t();} function t2s() {document.body.innerHTML = document.body.innerHTML.t2s();} </script> <a href="javascript:s2t()"><font color="white">繁体中文</font></a> | <a href="javascript:t2s()"><font color="white">简体中文</font></a> 8、JSP: <%@ page pageEncoding="utf-8" contentType="text/html; charset=utf-8" %> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 然后加上一个Web Filter做编码转换, 再确认一下数据库也是utf-8的话, 不管是输入输出,肯定没问题的。 ·JSP,JAVA文件的编码方式采用utf-8 ·数据库采用utf-8的编码 |
|