`
星夜的遐想
  • 浏览: 183802 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

中文乱码问题小结

阅读更多

做web开发,遇见乱码肯定是很正常的事

如每次都等到出现乱码了,再来解决乱码,倒不如在开始阶段做好以下准备,防止乱码的产生

 

项目编码,前端页面编码,数据库编码必须都是一致的; 
其次请求路径尽量不要有中文; 
请求的URL尽量不要有中文参数; 
表单提交尽量采用POST请求方式 

当然在开发过程中,不可能完全做到,这样也就没法避免造成乱码的问题,下面分情况总结下

一般情况下,现在假设都是UTF-8的编码方式;

1、表单通过POST提交方式
      这是最简单的一种,例如在表单中填入了很多中文参数值,

     从后台程序中通过req.getParameter("参数名")得到乱码


     解决方案:在取参数前设置request的编码方式:

req.setCharacterEncoding("UTF-8");
String userName=req.getParameter("userName");

  

当然自己写个过滤器Filter的话,就省事的多。

 

2、通过URL的GET请求方式


   请求路径中含中文:http://localhost:8080/encode/中文.jsp
   或请求参数中包含中文参数:http://localhost:8080/encode/login.jsp?userName='张三'
 

解决方案1:
  设置下tomcat的service.xml文件中添加tomcat解码方式URIEncoding参数:

 <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"   URIEncoding="UTF-8"/>

 
 解决方案2:
  (1)自己用js内置函数encodeURI对中文参数进行转码,再传到后台处理:
  

 var userName="张三";
 userName=encodeURI(encodeURI(userName));
 var param="userName="+userName;
 var url="http://localhost:8080/encode/login.jsp?"+param;

 

 (2)然在后台通过
 

String userName=req.getParameter("userName");
userName=java.net.URLDecoder.decode(userName, "utf-8");

  

 方案2不能对含中文的路径进行处理。

 


 

分享到:
评论

相关推荐

    jsp中文乱码问题小结

    有关jsp中文乱码问题的小结,从客户端和服务器端总结

    JSP中文乱码问题解决方法小结

    在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱码问题以及解决方法。

    PHP+MySQL存储数据常见中文乱码问题小结

    本文实例总结了PHP+MySQL存储数据常见中文乱码问题。分享给大家供大家参考,具体如下: PHP+MySQL出现中文乱码的常见原因: 1. MYSQL数据库的编码是utf8,与PHP网页的编码格式不一致,就会造成MYSQL中的中文乱码。 2. ...

    解决knime连接mysql数据库中文乱码

    小结 在本文中,我们解决了 Knime 连接 MySQL 数据库中文乱码问题,并详细讲解了相关的知识点。通过修改 Knime 的编码格式、修改 MySQL 数据库的编码格式、创建数据源和修改 ODBC 连接的编码格式,我们可以正确...

    关于SSH中文乱码的一个小总结.doc

    五、 小结 通过以上配置,可以解决SSH中文乱码问题。需要注意的是,在配置web.xml的过滤器时,需要将 CharacterEncodingFilter放在第一位,以避免其他过滤器的干扰。同时,需要在struts.properties中添加struts.i18...

    PHP乱码问题,UTF-8乱码常见问题小结

    一.HTML页面转UTF-8编码问题 1.在head后,title前加入一行: &... 3.HTML文件头BOM问题: 将文件从其他的编码转换成UTF-8编码时,有时候会在文件的最开始加上一个BOM标签, 在个BOM标签可能会导致浏览器在显示中文的时

    mysql导入导出数据中文乱码解决方法小结

    linux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题。 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上–default-character-...

    asp UTF-8 乱码问题的解决方法小结

    中文一般采用的是gb2312这样的话显示中文基本上不会出现乱码。但是有时候我们用的是一种国际上通用的utf-8格式。如果utf-8格式人不是很了解的话是容易出现乱码的。 有许多朋友问过我,为什么在ASP里指定了codepage为...

    mysql query browser中文乱码的解决方法

    您可能感兴趣的文章:mysql导入导出数据中文乱码解决方法小结mysql 中文乱码 解决方法集锦实战mysql导出中文乱码及phpmyadmin导入中文乱码的解决方法windows环境下Mysql中文乱码问题解决方法Windows服务器

    Linux下乱码问题的解决方案小结

    无中文输入法导致的乱码 1、ibus输入法 Ubuntu 系统安装后已经自带了ibus输入法,在英语环境下默认不启动。配置ibus自动启动可以在ubuntu系统菜单上选择System — Preferences — Startup Applications,在该窗口中...

    小结下MySQL中文乱码,phpmyadmin乱码,php乱码 产生原因及其解决方法第1/3页

    小结下MySQL中文乱码,phpmyadmin乱码,php乱码 产生原因及其解决方法

    网站开发防止中文乱码需要了解的codepage的重要性小结

    几天研究UTF-8编码,太晕了,把我的看法和各位讨论讨论。欢迎来批啊。以下都是我的想法,哪里有不对的请不吝赐教,帮忙指出来。

    SQL LOADER错误小结

    ERROR 1:SQL*LOADER装载数据成功,但是发现某些字段的中文为乱码,这个是因为编码缘故造成乱码。可在控制文件中添加字符集编码参数解决问题, 例如:CHARACTERSET ‘ZHS16GBK’ 或 CHARACTERSET ‘UTF8’,根据...

    解决网页打开是乱码的问题

    四、小结 解决网页打开乱码的问题需要在服务器端和浏览器端同时进行设置。在服务器端,需要修改Apache的配置文件httpd.conf,设置默认语言为简体中文和编码字符集为GB2312。在浏览器端,需要设置浏览器的语言和编码...

    软件页面功能测试点小结

    一、显示问题1、页面无乱码现象:在可以输入中、英文的系统输入中文,不能出现 软件页面功能测试点小结 软件测试 关键字:Web测试功能测试 项目接近尾声了,现在似乎有点闲,随便找点事来做吧。在前人的基础下,...

Global site tag (gtag.js) - Google Analytics