中文参数乱码问题解决方案(精选5篇)

时间:2019-05-12 11:22:18下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《中文参数乱码问题解决方案》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《中文参数乱码问题解决方案》。

第一篇:中文参数乱码问题解决方案

问题1:

在使用tomcat服务器时,如在跳转路径中传递中文参数会出现乱码现向!如:以

两种方式提交的变量flag在LoginServlet中用request.getParameter(“flag”);时就会出现乱码问题。

解决:在tomcat/conf/servlet.Xml中 加入一段代码:

debug=“0” connectionTimeout=“20000”

disableUploadTimeout=“true” URIEncoding=“true”/>

问题2:

如果uri中转递的是参数要发送到jsp页面,则必须在接受代码的jsp页面里面还要加入代码: <% request.setCharacterEncoding(“gb2312”);%>

问题3:

在jsp页面里的代码修正:

<%@ page language=“java” import=“java.util.*” pageEncoding=“gb2312”%> <%@ page contentType=“gb2312”%>

无标题文档

//如不注明是post方式则默认是get方式

问题4:

在servlet中的代码修正

在doPost方法里面最上面的位置加上如下代码:

response.setCharacterEncoding(“gb2312”);

request.setCharacterEncoding(“gb2312”);

第二篇:struts2 action接收到的参数中文乱码的问题

struts2 action接收到的参数中文乱码的问题

(2011-06-16 10:55:44)转载 标签: 分类: 技术收藏

utf-8 乱码 gb2312 字符集 编码方法 杂谈

中文乱码,首先要区分是页面乱码、action乱码,还是数据库乱码。大致的原理是java使用unicode编码-->window使用gbk(gb2312的扩展集)--mysql默认使用utf-8(unicode的一种

编码方法),这样转来转去就乱码了^_^。解决方法如下:

1.在struts2里面,最好将所有字符都设成utf-8。<%@ page contentType=“text/html;charset=UTF-8”%> <%@ page pageEncoding=“UTF-8” %> 1.1 在jsp页面设定字符编码。这边有必有说明的是如果是jsp+java bean+servlet的方案,中文乱码很好解决,统一设成gb2312就可以了。1.2 使用struts框架字符集不能设成gb2312,要改成utf-8。

2.在struts.properties 添加: struts.devMode=false struts.enable.DynamicMethodInvocation=true struts.i18n.reload=true struts.ui.theme=simple struts.locale=zh_CN struts.i18n.encoding=UTF-8 struts.serve.static.browserCache=false struts.url.includeParams=none

其中locale、encoding就是字符集的设定了。3.在web.xml加个filter struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp struts-cleanup /*

第三篇:struts处理中文乱码问题总结

http://58andy.sinaapp.com 学了很久的java,接触SSH也有一段时间了,写成博文总是有点懒,最近在整理一些思绪,把SSH一点一滴放进博客里,以备以后改进,再学习。

以我自己的了解,在进行struts开发的过程中,总也是出现很多的乱码问题,但归根到底,也只是以下三种情况:

㈠页面显示中文乱码

㈡传递参数中文乱码

㈢国际化资源文件乱码

下面就这三中情况介绍怎么在具体项目中处理这些乱码问题。而对于整体的处理思想,是要统一编码为: UTF-8.(以myeclipse6支持的struts1.3为准)

㈠页面显示中文乱码

对于在页面中显示出现乱码,这个问题比较简单,便是检查你的JSP文件里是不是出现了中文要处理,因为JSP默认的编码格式为“ISO-8859-1”,当JSP中出现要处理的中文时,其显示就出现乱码了,这种情况一般出现在手写JSP,或修改时。因为在myeclipse6.0中,如果出现了编码错误时,程序不会让你保存,而是会提示你注意编码,这点很好。具体的修改办法是把 Html代码

1.<%.@ page language=“java” import=“java.util.” pageEncoding=“ISO-8859-1”>

改成:

Html代码

1.<%.@ page language=“java” import=“java.util.” pageEncoding=“UTF-8”>

㈡传递参数中文乱码

传递参数出现的乱码,参数的内容为中文。比如在struts应用中,简单的一个登录界面中,需要传递的登录名为中文时,你没经处理之前,是会出现乱码传递的,为了让我们能看到显示的乱码,我们在对应的Action类的子类里,修改一下,用System.out把接受到的参数输出,代码如下: Java代码

http://58andy.sinaapp.com 1.public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, 2.HttpServletResponse response)...{ 3.DynaActionForm loginForm =(DynaActionForm)form;4.5.String username =(String)loginForm.get(“username”);6.String password =(String)loginForm.get(“password”);7.System.out.println(“username:”+username);8.System.out.println(“password:”+password);9.if(username.equals(“ivorytower”)&& password.equals(“123456”))...{ 10.return mapping.findForward(“success”);11.} 12.return mapping.findForward(“fail”);13.}

那么当你提交了中文输入后就会出现乱码了。

具体的解决方法:

①修改Tomcat---->conf----->server.xml文件,在修改端口的标签后面加一行代码,如下: Xml代码

1.

3.redirectPort=“8443” URIEncoding=“UTF-8”/>

②编写过滤器Filter Java代码

1.2.import java.io.IOException;3.4.import javax.servlet.Filter;5.import javax.servlet.FilterChain;6.import javax.servlet.FilterConfig;7.import javax.servlet.ServletException;8.import javax.servlet.ServletRequest;9.import javax.servlet.ServletResponse;10.11.public class CharacterEncodingFilter implements Filter...{

http://58andy.sinaapp.com 12.13.@Override

14.public void destroy()...{ 15.} 16.17.@Override

18.public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException,ServletException { 19.request.setCharacterEncoding(“utf-8”);20.chain.doFilter(request, response);21.} 22.23.@Override

24.public void init(FilterConfig arg0)throws ServletException...{ 25.} 26.27.}

利用过滤器,把requst传递的中文参数都设成“UTF-8”编码。

③修改web.xml文件

打开项目里的web.xml文件,在前面加上如下代码: Xml代码

1.2.

3.characterEncoding

4.com.v512.example.CharacterEncodingFilter 5.

6.

7.characterEncoding 8./* 9.

注意其过滤的URL为“/*”,表示当前的request请求。为了使设置生效,重起tomcat。

㈢国际化资源文件乱码

http://58andy.sinaapp.com

①利用JDK的native2ascii工具进行编码转换

国际化问题,主要是为了处理文件在浏览器上的显示问题,还是以登录界面来说,比如在中文浏览器上,我们要看到中文显示,对应在英文浏览器上要显示英文。那么我们在登录那个界面处理上,就不能直接写上我们的“用户名”“密码”等标识了。就要用标记转换输出了,修改为: Html代码

1.2.

再者,打开项目下的资源配置文件ApplicationResources.properties,依据上面所写key值,设定成我们要的默认值(显示英文),比如 引用

#Resource for Parameter 'com.v512.example.struts.ApplicationResources #Project webexample2 example.login.username=username example.login.password=password

现在我们动手新建一个资源文件,让其能显示中文,直接Ctrl+C,Ctrl+V。改名为ApplicationResources_zh.properties,代码如下: 引用

#Resource for Parameter 'com.v512.example.struts.ApplicationResources #Project webexample2 example.login.username=用户名 example.login.password=密码

但保存,myeclipse会报错,这时我们需要修改资源文件的编码格式。Windons---->Preferences---->Content Type------>Text----->JavaPropertiesFile,把其Default encoding改为“utf-8”,按“update”更新。这样就能进行保存了。但是当我们进行验证会不是成功时,仍然给我们的是乱码。

不急,我们还得做一项任务,打开DOS窗口,CMD到资源文件所在目录,运用JDK的native2ascii工具把我们新建的资源文件改成另一个名字的资源文件,例如bank.properties。命令如下: 引用

>native2ascii-encoding gbk ApplicationResources_zh.properties bank.properties

http://58andy.sinaapp.com

打开bank.properties资源文件,自动生成的代码如下: 引用

#Generated by ResourceBundle Editor(http://eclipse-rbe.sourceforge.net)

example.login.username = u7528u6237u540D example.login.password = u5BC6u7801

然后在myeclipse窗口中,把原来新建ApplicationResources_zh.properties 删除,并把bank.properties改为ApplicationResources_zh.properties(为了方便记忆,管理)。然后重起tomcat或进行reload文件,我们发现乱码问题没有了。

②利用Eclipse ResourceBundle Editor插件工具

以上我们是利用了JDK的native2ascii工具来处理国际化问题,但在EC中,还有一种更方便的工具专门用来处理编辑java的资源文件国际化乱码问题,即Eclipse ResourceBundle Editor插件工具。安装了这个插件后,我们能进行方便的可视化资源文件编辑。推荐。

第四篇:PHP MySql乱码解决方案

PHP乱码?Mysql乱码?怎么解决?

PHP乱码或者mysql乱码,多半是因为没有统一编码,要解决PHP/mysql乱码,只要做到三码合一即可.所谓三码,是指文件编码,页面编码声明和数据库字符集,要使用相同的编码,如全部为utf-8.怎么做到三码合一?下面以utf-8为例,说明如何统一编码.1.网页文件编码保存为utf-8无BOM

记事本,保存文件的时候选择“编码”为utf-8

editPlus,保存时选择“encoding”为utf-8

UEStudio保存时选择“格式”为utf-8无BOM

2.PHP页面内部使用header('Content-type : text/html;Charset=UTF-8');声明页面编码为utf-8

在html头部写入来声明页面编码为utf-8

3.PHP页面中连接数据库服务器后执行sql查询前使用以下代码先将字符集设置为utf-8 mysql_query('SET NAMES utf8');[或mysqli,具体代码这里不再写了]

4.创建数据表的时候将默认编码设置为utf8,将字符校对(callate)设置为utf8_general_ci CREATE TABLE IF NOT EXISTS `name`(....代码....)ENGINE InnoDB DEFAULT CHARSET utf8 COLLATE utf8_general_ci

做到这四点,相信你的网页和数据库不会再乱码.

第五篇:phpmyadmin乱码问题

phpmyadmin乱码问题____2012年12月6日 09:39:16

首先,如果你出现乱码,你一定baidu了文章,对于各种答案,肯定是头都大了,说的都差不多,却都不一样烦啊。问题叙述:

1,从网页提交数据库数据,在phpmyadmin上显示乱码,在网页输出是好的2,直接从数据库插入数据,但是输出到网页后是乱码

3,从网页提交数据库数据,在phpmyadmin上显示正确,但是网页输出是乱码。

对于乱码问题就这三种了吧!

今天我亲自试验了一下,下面公布我的结果(我用的是UTF-8,其他同理,UTF-8特别注意)

总述,乱码,原因,编码不一致,为什么?答曰:提交数据库的数据需要编码,数据库存储需要编码,从数据库提取的数据还需要编码。这三种编码需要一致!

首先,你要保证所有输出输入网页都有编码声明

或者

header(“Content-Type: text/html;charset=utf-8”);

header(“Content-Type: text/html;charset=utf-8”);

注意!这里是utf-8,不是utf8

其次,相应数据的编码整理应该为utf8_general_ci。

1、从网页提交数据库数据,在phpmyadmin上显示乱码,在网页输出是好的,说明提交的数据和数据库的编码不一样,提取数据的编码和提交数据的编码一样 A->B->A型

这你就懂了吧,A是提交和提取数据的编码,B是数据库存储用的编码。

修改方法: 如果你不是新手的话,数据库连接文件应该是单独的吧比如execut_dql()(供查询用)或者execut_dml()(供修改用),所有的语句应该都是通过这两个函数进行的所以在这两个函数里的第一行,先写上mysql_query(“SET NAMES 'utf8'”);注意!是utf8,不是utf-8

例如下面的(在mysql_query()你的SQL语句之前,全部 SET NAME 'utf8'一下)

mysql_query(“SET NAMES 'utf8'”);

$res=mysql_query($sql,$this->conn)ordie(mysql_error());

mysql_query(“SET NAMES 'utf8'”);$res=mysql_query($sql,$this->conn)or die(mysql_error());

其实,你把所以关于数据库查询、插入的语句前全部mysql_query(“SET NAMES 'utf8'”);后,乱码问题就已经解决了,不过你以前插入的数据要重新插入了。

2、直接从数据库插入数据,但是输出到网页后是乱码。B->A型

这个不用再说了吧,你把查询语句前先

mysql_query(“SET NAMES 'utf8'”);

//你的查询

之后刷新下就不是乱码了。

3、从网页提交数据库数据,在phpmyadmin上显示正确,但是网页输出是乱码。A->A->B型

同上,你把查询语句前先

mysql_query(“SET NAMES 'utf8'”);

之后刷新下就不是乱码了。

所以总结出,只要保证操作过程中,输入,存储,输出的字符编码一致,你想让他乱码都难

下载中文参数乱码问题解决方案(精选5篇)word格式文档
下载中文参数乱码问题解决方案(精选5篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    问题解决方案

    会展经济因其对举办地的强有力拉动作用而备受地方政府的青睐,前几年各地还掀起了一股修建展览馆的热潮。由各地政府主导的展会也纷纷兴起,一时间好不热闹。展览终究还是要受市......

    MySQL中文模糊搜索解决方案

    在 MySQL下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却没有a字符存在。本人以前也曾遇到过类似问题,经详细阅读MySQL的Manua......

    敬老院问题及解决方案

    敬老院问题及解决方案 1.活动预案 ①因特殊原因导致活动无法进行时,各部长、队长应在第一时间打电话通知参与活动人员处理结果并做好解释,第一时间派出负责人前往集合地点等......

    安保问题解决方案

    建阳区域17年问题整改和18年工作计划 为了18年能争取好的成绩,建阳首先在自身上查找问题以及制定好整改措施,并在18年中实际安排实施落地;深入结合17年,完成18年工做基本方向和......

    南海问题解决方案

    南海问题解决方案 第一、与美、日、韩国家继续进行经济互绑,形成你亡我亡、你生我生的局面 美国商业周刊:中美已被经济捆绑在一起2007年07月21日 星期六 08:12由食品安全之争......

    环境污染问题及解决方案[★]

    环境污染问题及解决方案在环境问题日趋严重的今天,我们应该深刻思考对于我们生存的自然环境及家居环境,我们该如何去维护。 一.水污染 1.海洋污染现状 目前,我国的海洋环境,总......

    采购部问题及解决方案

    采购管理问题简谈 为明确采购部职能,更大的发挥采购部在经营中的作用,针对采购部现存问题做以下简谈。 一、采购流程不完善。 常规类采购,采购部在生产部生产计划中需确认采购......

    实施问题解决方案

    1、 畅捷通T+系统中,产品批次,每次生产批号不一样,如何管理? 解决方案:启用批号管理(系统管理 →帐套设置 →选项设置 →批号管理),在存货里面勾选批次,下订单的时候 填写批号即可,查......