常见编码方式:

ISO-8859-1  西欧码

GB2312  简体中文码

GBK   大五码

UTF-8 全球码(推荐)

1.页面(HTML,JSP,Servlet)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

response.setcontentType("text/html;charset=UTF-8");

PrintWriter out = response.getWriter();

out.println("中文");

2.上传(控件)

普通字段(上传中增加的):

item.getString("UTF-8");

文件名:

DiskFileUpload dfu = new ...

dfu.setHeaderEcoding("UTF-8");

3.普通表单提交

post方式:

request.setCharacterEncoding("UTF-8");

get方式:

tomcat--->conf--->server.xml---->增加 URIEncoding="UTF-8"

<Connector URIEncoding="UTF-8" port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />

    <!-- A "Connector" using the shared thread pool-->

4.数据库(MySQL)

如何解决MySQL5.1的编码问题:

(1).修改mysql的核心配置文件:(mysql安装目录下)my.ini

两处字符编码改换:u

default-character-set=utf8

(2).重启MySQL服务器

net stop mysql

net start mysql

(3).重新登录,使用mysql的status命令查看状态信息

这样以后创建的数据库和数据表的默认编码方式就是UTF-8

(4).解决残留数据库和数据表的编码问题

alter database [dbName] default character set utf8;

use [dbName];

alter table [tableName] convert to character set utf8;

(5).为了在dos命令行能够看到UTF-8编码的中文,需要

set names gbk;

(6).接收表单数据时第一行JAVA代码加上request.setCharacterEncoding("UTF-8");

5.Ajax中的乱码

get方式提交:

(1)前台一次或没有转码

url = encodeURI(url);

    后台转码

name = new String(name.getBytes("ISO-8859-1"),"UTF-8");

pass = new String(pass.getBytes("ISO-8859-1"),"UTF-8");

(2)前台两次转码

url = encodeURI(encodeURI(url));

   后台转码

name = URLDecoder.decode(name,"UTF-8");

pass = URLDecoder.decode(pass,"UTF-8");

6.其它

(1).post: method="post" && pageEcoding="UTF-8/GBK" && TestServlet中首行一定要写

    request.setCharacterEcoding("UTF-8");

注: Filter 配置过滤器的时候 只能是post有效

(2).GET href="TestServlet" new String();  onclick="js:funA();"

 funA(){

  var url = "TestServlet?name='中文' ";

  url = encodeURI(url);

  window.location.href=url;

}

(3).TestServlet.java

username=URLEcncode(username,"UTF-8");

response.sendRedirect("welcome.jsp?name="+name+"&pass="+pass);

welcome.jsp

request.getparameter("name");

request.getparameter("pass");

name = new String(name.getByte("ISO-8859-1"),"UTF-8");

此篇博客系学习中总结,对初学者有一定帮助,其中一些是老师传授,在这里分享一下,欢迎大家补充或提出意见,共勉!

JavaWeb中常见的乱码处理(亲测)的更多相关文章

  1. Linux中oracle的安装,亲测

    一.下载oracle的软件包 地址: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-li ...

  2. Java web中常见编码乱码问题(二)

    根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析:   2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...

  3. 去哪网实习总结:JavaWeb中文传參乱码问题的解决(JavaWeb)

    本来是以做数据挖掘的目的进去哪网的.结构却成了系统开发... 只是还是比較认真的做了三个月.老师非常认同我的工作态度和成果... 实习立即就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享给 ...

  4. Java web中常见编码乱码问题(一)

    最近在看Java web中中文编码问题,特此记录下. 本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法: 一.常见编码方式: 1.ASCII 码 众所周知,这是最简单的编码. ...

  5. 详解Javaweb中常见漏洞的防御

    上一篇给大家介绍了SpringMVC中常见的客户端数据输入点,这一篇给大家讲解下java中常见漏洞的防御方法. 0x01.sql注入 下面我们就用利用SpringMVC自带的数据库操作类jdbcTem ...

  6. ssh 客户端远程vi文本文件中文乱码(亲测)

    由于是生产环境,且非笔者控制,为了避免影响系统全局,仅对本session有效 export LANG="zh_CN.UTF-8"export LANG="zh_CN.GB ...

  7. Java代码中执行Linux命令,亲测可用

    前提需要知道怎么在linux怎么新建java文件和怎么编译,否则请先学其他知识!! import java.io.*;public class Test{ public static void mai ...

  8. MyEclipse10 中设置Jquery提醒,亲测可用

    最近做练习需要用到Jquery,在myeclipse中默认没有提示功能.然后在网上找解决方案,有一种方案说使用spket,然后搜索安装,折腾了半天还是不行,脑细胞死掉几百个.. 然后在网上搜到另外一种 ...

  9. Linux for Matlab中文注释乱码(亲测有效)

    中文注释乱码的原因是windows下的m文件采用的是gb2312编码,只要将所有的m文件转成 utf8文件,显示就正常了. 1.首先安装enca:sudo apt-get install enca 2 ...

随机推荐

  1. 51Nod 1013 3的幂的和 快速幂 | 乘法逆元 | 递归求和公式

    1.乘法逆元 直接使用等比数列求和公式,注意使用乘法逆元 ---严谨,失细节毁所有 #include "bits/stdc++.h" using namespace std; #d ...

  2. jquery字符串序列化方法总结

    在jquery中字符串序列化方法包括有param() .serialize() .serializeArray(),在这里对其常用做法进行总结. $.param()方法这是serialize()方法的 ...

  3. Chrome切换分辨率

    不知道大家是否有遇到在Web开发的时候,老大会让你模拟不同分辨率情况,这时候,可能就有些小小的麻烦,我们可能要不断调整分辨率.是件很崩溃的事情.现在推荐一款Chrome插件.即可实现这个简单的功能. ...

  4. Asp.net Web Api 2 FORM Authentication Demo

    最近看了一点 web api 2方面的书,对认证都是简单介绍了下,所以我在这里做个简单Demo,本文主要是FORM Authentication,顺带把基本认证也讲了. Demo 一.FORM Aut ...

  5. 【BZOJ4903】【CTSC2017】吉夫特 [DP]

    吉夫特 Time Limit: 15 Sec  Memory Limit: 512 MB[Submit][Status][Discuss] Description Input 第一行一个整数n. 接下 ...

  6. 省队集训 Day7 选点游戏

    [题目大意] 维护一个$n$个点的图,$m$个操作,支持两个操作: 1. 连接$(u, v)$这条边: 2. 询问$u$所在的联通块中,能选出的最大合法的点数. 一个方案是合法的,当且仅当对于所有被选 ...

  7. Achain 钱包部署

    官网 GIT: [ Achain_linux ] 基础环境 OS: CentOS, Ubuntu Achain: 官网 [ release 最新版本 ] 安装 Achain 钱包 下载 CentOS ...

  8. 洛谷 P3375 【模板】KMP字符串匹配

    我这段时间因为字符串太差而被关了起来了(昨晚打cf不会处理字符串现场找大佬模板瞎搞,差点就凉了),所以决定好好补一下字符串的知识QAQ,暂时先学习kmp算法吧~ 题目链接:https://www.lu ...

  9. SQL SERVER 常用公式

    SQL SERVER 获取当前月的天数 SELECT -DAY(getdate()+-DAY(getdate())) SQL server 除法计算百分比[整数乘1.0否则结果为0或1] CONVER ...

  10. 直观理解js自执行函数

    要在函数体后面加括号就能立即调用,则这个函数必须是函数表达式,不能是函数声明: Jslint推荐的写法: (function(){alert(1);}()); 针对函数声明,使用().!.+.-.=. ...