JSP中文乱码的处理方法

jsp教程中文乱码的处理方法
在jsp代码中以下几处经常需要涉及到中文处理:

1. 在url中附带中文参数。这里中文参数通常可以直接读取,例如: <%= request.getparameter("showword")%>

2. 在jswdk中读取html表单提交的中文值这时需要加以编码,较为简洁的写法是:

string name1=new string(request.getparameter("user_id").getbytes("iso8859_1"))。

另外,在jdk 1.3的支持下,不需加入<%@ page contenttype="text/html;charset=gb2312"%> ,而在jdk 1.2.2 以下,即使以上两种方法同时运用也很不稳定。但在resin平台,情况较好,只要在页面第一行加入:<%@ page contenttype="text/html;charset=gb2312"%>即可正确处理中文,如果再加代码则反而不对。

3.在jswdk中session包含的中文,如果从表单中读出的值经过编码可正确显示,但直接赋予中文值则不行,而resin平台则很好。

4. 在编译servlet和jsp时加入代码选项。在编译servlet时使用java-encoding iso8859-1 myservlet.java;在jsp的zone配置文件中,修改编译参数为:compiler=builtin - javac- encoding iso8859-1。使用这种方法后,不需要做其他的改动就可以正常显示中文了。

另外,流行的关系数据库教程系统都支持数据库encoding,也就是说在创建数据库时可以指定它自己的字符集设置,数据库的数据以指定的编码形式存储。当应用程序访问数据时,在入口和出口处都会有 encoding 转换。对于中文数据,数据库字符编码的设置应当保证数据的完整性。 gb2312、gbk、utf-8 等都是可选的数据库 encoding,也可以选择 iso8859-1 (8-bit), 但会增加了编程的复杂度,iso8859-1不是推荐的数据库 encoding。在jsp/servlet编程时,可以先用数据库管理系统提供的管理功能检查其中的中文数据是否正确。

处理方法实例
下面是两个具体的中文乱码解决实例,读者仔细研究后可能会有所收获。

1.常见的字符转换方法

将form 中 的 值 传 送 到 数 据 库 中 再 取 出 来 后 全 变 成 了"?"。form用post提交数据,代码中使用了语句:string st=new(request.getparameter("name").getbytes("iso8859_1")), 而且也声明了charset=gb2312。

要处理form中传递的中文参数,应该在jsp中加入下面的代码,另外定义一个专门解决这个问题的getstr类,然后对接收到的参数进行转换:

string keyword1=request.getparameter("keyword1");
keyword1=getstr(keyword1);
这样就可以解决问题了,代码如下:
<%@ page contenttype="text/html;charset=gb2312"%>
<%!
public string getstr(string str){
try{string temp_p=str;
byte[] temp_t=temp_p.getbytes("iso8859-1");
string temp=new string(temp_t);
return temp;
}
catch(exception e){ }
return "null";
}
%>
<%--http://www.cndes.com测试--%>
<% string keyword="创联网络技术中心欢迎您的到来";
string keyword1=request.getparameter("keyword1");
keyword1=getstr(keyword1);
out.print(keyword);
out.print(keyword1);
%>

再看一款页面与数据库中文乱码处理方法

post.jsp
<form method="post" action="addmsg.jsp">
name:<input type="text" name="name" >
<input type="submit" value="submit">
</form>
<html>
<head>
<title>使用jdbc直接访问数据库</title>
</head>
<%@ page contenttype="text/html;charset=gb2312" %>
<%@ page import="java.sql.*" %>
<%
//string name=new string(request.getparameter("name").getbytes("iso8859_1"),"gbk");
string name = request.getparameter("name");
out.println(name);
class.forname("org.gjt.mm.mysql教程.driver");
connection
con=drivermanager.getconnection("jdbc:mysql://localhost/bbs?useunicode=true&characterencoding=utf-8","root","123456");
statement stmt=con.createstatement();
string sql="insert into book(name)values('"+name+"')";
int value;
value=stmt.executeupdate(sql);
if(value>0)
{
out.println("ok");
}
else
{
out.println("no");
}
stmt.close();
con.close();
%>
</table>
</body>
</html>

时间: 2024-09-12 02:20:02

JSP中文乱码的处理方法的相关文章

jsp中文乱码 jsp mysql 乱码的解决方法_JSP编程

jsp中文乱码 jsp mysql 乱码要servlet里面支持中文的方法: 在dopost或者doget的第一句加上: request.setCharacterEncoding("GB2312"); response.setCharacterEncoding("GB2312"); jsp乱码问题在jsp里面就把 <%@ page contentType="text/html; charset=gb2312" language="

JSP中文乱码常见3个例子及其解决方法_JSP编程

常见3个例子及其解决方法如下 实例一.JSP页面显示时 <html> <head> <title>中文乱码--JSP页面显示时</title> </head> <body> <center> <br/> <h1>木兰辞拟古决绝词柬友</h1> <p>人生若只如初见,何事秋风悲画扇.</p> <p>等闲变却故人心,却道故人心易变.</p> &

jQuery ajax方法传递中文时出现中文乱码的解决方法_jquery

本文实例讲述了jQuery ajax方法传递中文时出现中文乱码的解决方法.分享给大家供大家参考,具体如下: 使用jQuery的ajax方法,在传递中文时出现中文乱码,按照以前的方法,修改了jquery文件中的ajaxSetting也不好使 复制代码 代码如下: sajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charse

java表单提交中文乱码的解决方法_java

本文实例为大家分享了java表单提交中文乱码的解决方法,供大家参考,具体内容如下 主页index.xml <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>servlet演示</title> </head> <body> <h2&

Servlet的中文乱码常用解决方法

Servlet的中文乱码常用解决方法 在servlet页面就出错了,打印出就是乱码,why? public class toDetail extends HttpServlet {  public void doGet(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {   response.setContentType("text/html&quo

使用Wordpress插件时出现中文乱码的解决方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 用wordpress建网站的好处就在于,可以使用N多主题和N多的插件,由于wordpress在国外的使用时期较长,很多插件都是国外的用户开发的.对于中文的支持不是很好.经常使用WP一定会遇到插件编码问题,今天影子给大家讲一下关于使用wordpress插件时出现中文乱码的解决方法. 一.起因: 今天就遇到一个插件,输入中文后,保存,查看,显示输

wordpress安装过程中遇到中文乱码的处理方法

  wordpress安装过程中遇到中文乱码的处理方法        这篇文章主要介绍了wordpress安装过程中遇到中文乱码的处理方法,是个人项目中遇到的一个奇葩事件,经过一番研究,终于解决,这里记录下来分享给大家,有需要的小伙伴可以参考下. 在安装wordpress的时候,按照里面的readme.html的步骤进行安装,但是在访问wp-admin/install.php的时候就出现了一行乱码: 复制代码 代码如下: 鎮ㄧ殑 PHP 浼间箮娌℃湁瀹夎杩愯 WordPress 蹇呴』鐨 M

php生成二维码时出现中文乱码的解决方法_php技巧

本文实例讲述了php生成二维码时出现中文乱码的解决方法.分享给大家供大家参考.具体分析如下: 最近做了个扫描二维码得到vcard的项目,遇到一个问题,有一部分生成完的二维码,用android系统手机扫描后得到的vcard中的中文姓名是乱码,经过比对发现,这部分vcard中ORG这个类型没有内容,随即判断没内容就加上一个固定的字符串,这样乱码的问题得以解决. php生成二维码的几种方式 1.google开放api,代码如下: 复制代码 代码如下: $urlToEncode="http://www.

Java读取properties配置文件时,出现中文乱码的解决方法_java

如下所示: public static String getConfig(String key) { Properties pros = new Properties(); String value = ""; try { pros.load(new InputStreamReader(Object.class.getResourceAsStream("/properties.properties"), "UTF-8")); value = pr