多种语言(big5\gbk\gb2312\utf8\Shift_JIS\iso8859-1)的网页编码切换解决方案归纳

Tags: other
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的编码

本文链接:http://www.4byte.cn/learning/20758.html