您的位置:首页 > 编程语言 > Java开发

解决netbeans写jsp出现中文乱码的问题

2009-12-27 23:29 561 查看
jsp表单提交的数据有中文时出现乱码,并非读取数据库数据后显示乱码,以下是解决的方法。

netbeans创建jsp的模版中是:<%@page contentType="text/html" pageEncoding="UTF-8"%>,将这行改成以下这样就可以正常显示中文:

<%@page language="java" pageEncoding=utf-8" %>

<%@page contentType=”text/html;charset=utf-8” %>

下面是在网上摘的关于页面编码不一致而产生乱码

代码

<%@ page language="java" pageEncoding="UTF-8"%>

<%@ page contentType="text/html;charset=iso8859-1"%>

<html>

<head>

<title>中文问题</title>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

</head>

</head>

<body>

我是个好人

</body>

</html>

三个地方的编码。
第一个地方的编码格式为jsp文件的存储格式。Ecljpse会根据这个编码格式保存文件。并编译jsp文件,包括里面的汉字。
第二处编码为解码格式。因为存为UTF-8的文件被解码为iso8859-1,这样如有中文肯定出乱码。也就是必须一致。而第二处所在的这一行,可以没有。缺省也是使用iso8859-1的编码格式。所以如果没有这一行的话,“我是个好人”也会出现乱码。必须一致才可以。
第三处编码为控制浏览器的解码方式。如果前面的解码都一致并且无误的话,这个编码格式没有关系。有的网页出现乱码,就是因为浏览器不能确定使用哪种编码格式。因为页面有时候会嵌入页面,导致浏览器混淆了编码格式。出现了乱码。

在JSP中:

jsp 代码

<%@page contentType="text/html" pageEncoding="UTF-8"%>

在Servlet中:
java 代码

response.setContentType("text/html;charset=UTF-8");

在所有的网页中:
html代码

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

Netbeans统一UTF-8编码的方法
1.找到你的Netbeans安装目录下的etc文件夹,如C:/Program Files/NetBeans 6.0 M9/etc
2.用记事本打开netbeans.conf
3.找到netbeans_default_options这一句(没带#号的,带#号的是注释)
4.在最后面加上一个空格,再加入-J-Dfile.encoding=UTF-8
如我现在的设置:
netbeans_default_options="-J-DAM_CONFIG_FILE=/"C:/Sun/AppServer/domains/domain1/config/AMConfig.properties/" -J-Dcom.sun.aas.installRoot=/"C:/Sun/AppServer/" -J-Xms128m -J-Xmx512m -J-XX:PermSize=32m -J-XX:MaxPermSize=160m -J-Dapple.laf.useScreenMenuBar=true -J-XX:+UseConcMarkSweepGC -J-XX:+CMSClassUnloadingEnabled -J-XX:+CMSPermGenSweepingEnabled -J-Dfile.encoding=UTF-8"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: