background image

 

jspservlet 关于中文问题

在 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 平台,情况较好。只要在页面第一行加入: