`
星夜的遐想
  • 浏览: 189536 次
  • 性别: 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中文乱码问题是一个常见的开发难题,主要涉及客户端、服务器端以及数据库等多个环节。本文将深入探讨这个问题,并提供相应的解决方案。 首先,我们要理解中文乱码的根源。在Java(包括JSP)中,中文字符可能出现...

    mysql中文乱码问题

    小结 在本文中,我们讨论了 MySQL 中文乱码问题的原因和解决方法。解决这个问题的关键是检查和修改 MySQL 服务器的编码方式,包括 character_set_server 变量的设置和 my.ini 文件中的配置。通过这些方法,我们...

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

    在IT行业中,尤其是在进行Web开发时,JSP(JavaServer Pages)中文乱码问题是一个常见的困扰。这主要是由于字符编码不一致导致的。以下是一些关键的知识点和解决方法: 1. **JSP页面乱码** 当JSP页面中的中文字符...

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

    在PHP和MySQL集成开发中,中文乱码问题是一个常见的困扰,尤其对于处理中文内容的数据存储和展示。本文将深入探讨这些问题的原因以及相应的解决方案。 首先,我们来看PHP+MySQL出现中文乱码的几个主要原因: 1. **...

    MYSQL数据库中文乱码问题.docx

    小结 解决MYSQL数据库中文乱码问题需要注意以下几点: * 使用正确的命令和工具来导入和导出数据 * 使用phpmyadmin可以轻松地解决中文乱码问题 * 使用mysqldump时,需要注意中文乱码问题,可以使用iconv命令来转换...

    乱码解决,简单小结

    ### 乱码解决,简单小结 在Java开发过程中,我们经常会遇到乱码的问题,尤其是在前端与后端数据交互的过程中。本文将针对Java中的乱码问题进行总结,并提供几种简单的解决方案。 #### 一、理解字符编码与乱码产生...

    Ajax乱码小结

    在使用Ajax技术进行前后端交互的过程中,常常会遇到字符编码的问题,特别是当涉及到中文或其他非ASCII字符时,容易出现乱码现象。根据题目中的描述,“Ajax乱码:当调用`request.getParameter()`函数时,会自动进行...

    远程登录linux,使用vi和less查看文本出现中文乱码,使用cat正常.docx

    小结 在远程登录 Linux 系统中,使用 vi 和 less 查看文本可能会出现中文乱码的问题。这是因为 Linux 系统的字符编码问题导致的。可以使用 `export LESSCHARSET=latin1` 命令来解决 less 中的中文乱码问题,也可以...

    jsp 过滤器——解决中文乱码问题

    #### 小结 通过上述步骤,我们可以有效地解决JSP页面中可能出现的中文乱码问题。过滤器作为拦截器之一,在处理请求之前对数据进行预处理,能够有效解决乱码问题,并且使得后续的业务逻辑更加简洁高效。此外,还可以...

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

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

    mysql中文乱码解决

    #### 四、小结 以上四种方法分别从不同层面解决了MySQL中文乱码的问题,可以根据具体情况选择合适的方法。如果是在开发过程中遇到乱码问题,推荐使用第三种方法,在创建数据库时指定字符集;如果是部署到生产环境中...

    mysql乱码问题解决办法

    #### 六、小结 综上所述,解决MySQL乱码问题主要涉及以下几个方面: 1. **检查MySQL服务端和客户端的字符集设置是否一致且正确**; 2. **在数据库连接时明确指定字符集**; 3. **在执行SQL查询前设置正确的字符集**...

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

    在网页开发过程中,乱码问题常常困扰着开发者,尤其是在涉及中文字符的处理时。本文主要针对PHP环境下的UTF-8乱码问题进行总结,提供一系列的解决方案。 一、HTML页面转UTF-8编码问题 1. HTML元标签设置:在HTML...

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

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

    PHP json_encode中文乱码问题的解决办法

    上述知识内容为针对标题“PHP json_encode中文乱码问题的解决办法”及描述所提炼的关键知识点,包含了问题产生的原因、解决步骤、示例代码及小结。这些问题和解决方案对于使用PHP进行Web开发的程序员来说具有很高的...

    myeclipse乱码

    #### 四、小结 综上所述,解决MyEclipse中ORACLE数据库乱码问题的关键在于确保服务器端与客户端的字符集一致,并且在导入数据时使用正确的字符集。通过上述步骤的操作,可以有效地避免或解决汉字乱码问题,从而保证...

    Java中文编码问题小结

    Java中的中文编码问题是一个复杂而常见的议题,尤其是在跨平台开发中。本文主要涵盖了Java处理中文字符编码的关键点,包括Java虚拟机(JVM)的初始配置、编译过程中的编码设置、文件读写操作、XML文件处理以及字符串...

Global site tag (gtag.js) - Google Analytics