首页 > 代码库 > 我遇到的jsp 传递参数 出现乱码的情况(项目统一编码utf-8)

我遇到的jsp 传递参数 出现乱码的情况(项目统一编码utf-8)

  今天真是花了不少时间在这个乱码的问题上啊!为防止下次自己或别人再遇到相似的问题浪费过多的精力在这里...

特写下一些统一编码的相关步骤,不常写文章,本文可能写得不怎么好,仅供参考,谢谢

 

统一各文件的编码格式为UTF-8:

我的jsp文件头部:<%@ page language="java" pageEncoding="UTF-8"%>

(xml文件的头部默认都是:  <?xml version="1.0" encoding="UTF-8"?>                 )

并通过MyEclipse配置jsp文件,js文件的默认文件编码格式为:UTF-8,(点击myeclipse的工具栏上的Window->>Preferences->>General->>Content Types)后

如下如图,在窗口右边寻找相关设置:

如下图底部的红圈:Default encoding: UTF-8      ,最后点击OK,完成设置。

             

这些设置完后,检查整个项目的编码,选中你的myeclipse项目,右键后出现列表,选择Properties (一般在列表末尾),如果默认的Inherited from container不是UTF-8,则

点击其下面的Other单选按钮,后选择UTF-8:

创建数据库时,设置编码为UTF-8:

   CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 

与mysql数据库连接时url也需要设置统一编码:       jdbc:mysql://localhost:3306/db_myName?characterEncoding=UTF-8

做到上面的这几个,已经实现了UTF-8编码的统一了!  如果你存进数据库的中文数据不出现乱码 ,

那 下面的内容就不需要看了...

 

如果数据库插入中文插入出现了乱码,你可能像我一样粗心而忽略了小细节:

 

上面基本已经把整个项目的编码都统一了,但我发现我存进数据库的中文数据还是乱码;

我在java实现的DAO层方法那里直接使用”中文数据“存进数据库,发现没有乱码,则说明mysql数据库存中文没问题;

那应该是jsp参数传递方面的问题,

之后,我使用javascript的alert()方法,弹出相关的中文数据,也可以正常显示;

最后多方尝试也没有发现到底是在哪里出现的问题!

 

直到我看到这里:<form action=“myAction_save”>

看出问题了吗?这里少了:method属性,不写时,默认method=“get”,这是不支持中文传递的!

我们需要一定要记得加上method="post",如:  <form action=“myAction_save” method="post">,

就是这么一个细节,需要注意!