从学习javaweb开始就会经常遇到中文乱码,今天就做以下记录:

1. 要避免项目中遇到乱码,首先就是在搭建项目的设置工作空间的字符编码,若是多人开发,就更应该做到统一,在eclipse中选择widnow -> preferences -> genreal -> workspace,在这里设置工作空间的字符编码,我通常都会设置成utf-8

1.1 最好的方式就是所有的都统一用一种编码,在所有jsp页面中设置编码为utf-8,这样可以很大程度上避免乱码。在jsp的开头设置编码

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

2. 在前台向后台发送请求的时候也可能会出现中文乱码,这里又要分请求的方式,

2.1 若是采用get请求出现的中文乱码,那么就有两种解决方法:

第一种就是设置tomcat服务器的server.xml这个文件,找到下面的这个段代码,添加上URIEncoding="UTF-8",这种方法最简单

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

第二种就是在代码中使用String的构造方法转码,首先使用request.getParamter获取到参数,在用这个字符串构造出指定字符编码的String,eg:

new String(request.getParamter("xxx","utf-8")

若是在js中请求后台,也是使用get的方式请求,还可以使用javascript提供的encodeURI这个方法进行转码,然后再后台java中使用URLDecode.decode()进行解码,在java中有URLEncode.encode(),URLDecode.decode() 这个两个方法,一个是转码,一个是解码,对应的jsavascript中也有类似的两个方法。

2.2 若采用的是post方式请求后台出现乱码,也有几种方式解决:

第一种   使用request.setcharacterencoding这个方法设置请求内容的编码,这个方法只对post方式起作用就,自己也可以自己写一个过滤器来设置编码。

第二种   若项目中使用了Struts2,那么很简单,在struts.xml中配置一个参数

<constant name="struts.i18n.encoding" value="utf-8" />

第三种   若使用了spring也简单,配置一个spring中提供的拦截器:

<filter>
//过滤器使用spring类CharacterEncodingFilter
<filter-name>encodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
//过滤器过滤后的编码为utf-8
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
//过滤所有的路径:/*代表所有的路径
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

3. 从后台采用request.getWriter的流形式向前台写内容,若是出现乱码,采用response. setcharacterencoding设置编码,可以解决乱码,还可以采用response.setContentType("text/html; charset=utf-8")来设置页面的编码

4. 后台存入数据到数据库中也有可能会出现乱码,在取出来也就是是乱码,解决的方式就是设置数据库的字符编码,设置字符编码为utf-8,这个要看使用的什么数据库,这里说下mysql中设置数据库中的编码,在数据安装完成之后配置mysql数据库的字符编码为utf-8;若是数据库已经安装了可以到mysql的安装目录中找到配置启动方式:

java中可以出现的中文乱码的集中解决的更多相关文章

  1. java中Filter过滤器处理中文乱码的方法

    注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk.虽然两种都可以出来中文乱码,但是却造成了处 ...

  2. Java中常见的几个乱码问题以及解决方法

    1.ajax--URL中的参数含中文,后台接受的参数出现乱码 解决方法: 第一步:在javascript中,对url进行两次编码 url = "http://localhost:8080/M ...

  3. Java中使用FileputStream导致中文乱码问题的修改方案

    package com.pocketdigi; import java.io.File; import java.io.FileInputStream; import java.io.FileOutp ...

  4. java中get请求的中文乱码问题

    表单采用Get方式提交,解决乱码的方法为:     方式一:手动解码         param = new String(param.getBytes("iso8859-1"), ...

  5. Java中FTPClient上传中文目录、中文文件名乱码问题解决方法【好用】

    转: Java中FTPClient上传中文目录.中文文件名乱码问题解决方法 问题描述: 使用org.apache.commons.net.ftp.FTPClient创建中文目录.上传中文文件名时,目录 ...

  6. 中文乱码在java中URLEncoder.encode方法要调用两次解决

    中文乱码在java中URLEncoder.encode方法要调用两次解决 一.场景: 1.我在客户端要通过get方式调用服务器端的url,将中文参数做utf-8编码,需要在js中两次的进行编码,服务器 ...

  7. jquery.ajax的url中传递中文乱码问题的解决方法

    jquery.ajax的url中传递中文乱码问题的解决方法   JQuery JQuery默认的contentType:application/x-www-form-urlencoded 这才是JQu ...

  8. 处理SecureCRT中使用vim出现中文乱码问题

    处理SecureCRT中使用vim出现中文乱码问题 引用原文:http://blog.chinaunix.net/uid-20639775-id-3475608.html因为cat没有问题,定位是vi ...

  9. 在Servlet中出现一个输出中文乱码的问题(已经解)。

    在Servlet中出现一个输出中文乱码的问题,已经解. @Override public void doPost(HttpServletRequest reqeust, HttpServletResp ...

随机推荐

  1. Android应用--简、美音乐播放器增加音量控制

    Android应用--简.美音乐播放器增加音量控制 2013年6月26日简.美音乐播放器继续完善中.. 题外话:上一篇博客是在6月11号发的,那篇博客似乎有点问题,可能是因为代码结构有点乱的原因,很难 ...

  2. C语言数据结构----双向链表

    概括:主要说明双向链表的基本概念和具体操作以及源代码. 一.基本概念 1.有了单链表以后我们可以把内存中小块的空间联系在一起,并且把每一个小块都存储上我们想要存储的数值.但是单链表只有一个next,我 ...

  3. 设计模式的C++实现 2.工厂模式

    工厂模式,实例化对象,用工厂方法取代new操作. 工厂模式基本与简单工厂模式差点儿相同,简单工厂中每次加入一个子类必须在工厂类中加入一个推断分支,这违背了开闭原则.而工厂模式的解决方法是将简单工厂中的 ...

  4. 在GridView控件里面绑定DropDownList控件

    参考链接: http://www.aspsnippets.com/Articles/Populate-DropDownList-with-Selected-Value-in-EditItemTempl ...

  5. 【Spring】手动获取spring容器对象时,报no qualifying bean of type is defined

    手动获取容器对象时,报no qualifying bean of type is defined, 经过调查,发现手动获取的时候,该类所在的包必须经过spring容器初始化. 1.SpringConf ...

  6. 查看Oracle数据库某用户的连接信息

    执行以下语句可查出用户TJAMIS_LXF连接信息: select schemaname, osuser, process, machine, port, terminal, program from ...

  7. La=LaULb (循环链表)

    #include<stdio.h> typedef struct LNode { int data; struct LNode *next; }LNode,*LinkList; void ...

  8. OpenCV配置使用版

    在VS2010环境中应用Opencv,网上找到了很多配置方法,但大多都是老版本的,很多新手面对最新版本的Opencv无从下手,就给新手童鞋写了这么一篇超级详细的配置攻略,贴上来共享.要强调一点的就是, ...

  9. [LeetCode]题解(python):062-Unique Paths

    题目来源: https://leetcode.com/problems/unique-paths/ 题意分析: 给定两个整型m,n.判断从一个m×n的矩阵里面,从(0,0)走到(m-1,n-1)一共有 ...

  10. The Priest Mathematician

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=31329#problem/F f[0] = 1 , f[ i ] = f[ i - 1 ] ...