jsp、servlet 关于中文问题
在 jsp 中,中文乱码常会让人心乱如麻。
对于中文处理的常见对策,在网上经常可见的主要是下面 2 种:
<%@ page contentType="text/html;charset=gb2312" %>
或者:
<%
String Hi="你好";
byte[] tmpbyte=Hi.getBytes("ISO8859_1";
Hi=new String(tmpbyte);
out.print(Hi);
%>
虚拟小龙亭也主要采用了上面 2 种方法进行了修改,从而变成了 1.1 版。
通过简单总结,示例中的中文处理发生于以下几个地方:
1 在 url
附带中文参数,可以直接读取。
例如:
<%= request.getParameter("showword"%>
2 与数据库有关的各种 sql
操作
这里使用的 Access 没有发生问题。
3 读取 HTML form
表单中递交的中文值
在 jswdk 中需要加以编码,较为简洁的写法如:
String name1=new String(request.getParameter("user_id".getBytes("ISO8859_1");
另外,在 jdk1.3 的支持下,不需要加入
<%@ page contentType="text/html;charset=gb2312" %>
而在 jdk1.2.2 下面,即使 2 种方法同时运用也很不稳定。
而在 resin 平台,情况较好。只要在页面第一行加入: