JavaWeb中常见的乱码处理(亲测)
常见编码方式:
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中常见的乱码处理(亲测)的更多相关文章
- Linux中oracle的安装,亲测
一.下载oracle的软件包 地址: http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-li ...
- Java web中常见编码乱码问题(二)
根据上篇记录Java web中常见编码乱码问题(一), 接着记录乱码案例: 案例分析: 2.输出流写入内容或者输入流读取内容时乱码(内容中有中文) 原因分析: a. 如果是按字节写入或读取时乱码, ...
- 去哪网实习总结:JavaWeb中文传參乱码问题的解决(JavaWeb)
本来是以做数据挖掘的目的进去哪网的.结构却成了系统开发... 只是还是比較认真的做了三个月.老师非常认同我的工作态度和成果... 实习立即就要结束了,总结一下几点之前没有注意过的变成习惯和问题,分享给 ...
- Java web中常见编码乱码问题(一)
最近在看Java web中中文编码问题,特此记录下. 本文将会介绍常见编码方式和Java web中遇到中文乱码问题的常见解决方法: 一.常见编码方式: 1.ASCII 码 众所周知,这是最简单的编码. ...
- 详解Javaweb中常见漏洞的防御
上一篇给大家介绍了SpringMVC中常见的客户端数据输入点,这一篇给大家讲解下java中常见漏洞的防御方法. 0x01.sql注入 下面我们就用利用SpringMVC自带的数据库操作类jdbcTem ...
- ssh 客户端远程vi文本文件中文乱码(亲测)
由于是生产环境,且非笔者控制,为了避免影响系统全局,仅对本session有效 export LANG="zh_CN.UTF-8"export LANG="zh_CN.GB ...
- Java代码中执行Linux命令,亲测可用
前提需要知道怎么在linux怎么新建java文件和怎么编译,否则请先学其他知识!! import java.io.*;public class Test{ public static void mai ...
- MyEclipse10 中设置Jquery提醒,亲测可用
最近做练习需要用到Jquery,在myeclipse中默认没有提示功能.然后在网上找解决方案,有一种方案说使用spket,然后搜索安装,折腾了半天还是不行,脑细胞死掉几百个.. 然后在网上搜到另外一种 ...
- Linux for Matlab中文注释乱码(亲测有效)
中文注释乱码的原因是windows下的m文件采用的是gb2312编码,只要将所有的m文件转成 utf8文件,显示就正常了. 1.首先安装enca:sudo apt-get install enca 2 ...
随机推荐
- [uva11991]map和vector的入门
给你一个长度为n的数组,进行m次询问,每次询问输入k和v,输出第k次出现v时的下标是多少. n<=1e6 用vector动态开空间,map使数值结合.map每次查找效率大约为logn. map的 ...
- jquery的基础语法、选取元素、操作元素、加事件、挂事件及移除事件
jquery基础知识 1.jquery文件的引入,所有的js代码要写在下面那段代码下面. <script src="../jquery-1.11.2.min.js">& ...
- 炒鸡简单的canvas粒子(山东数漫江湖)
位图的canvas一直不会被svg比下去的原因了. 俗话说,须弥芥子,是大小之说,也有以小见大之说,颗颗粒子,足以构建宏大效果. 这是一篇炒鸡简单的canvas粒子教程,主要是讲如何粒子特效的原理,一 ...
- HDU 1175 连连看 (深搜+剪枝)
题目链接 Problem Description "连连看"相信很多人都玩过.没玩过也没关系,下面我给大家介绍一下游戏规则:在一个棋盘中,放了很多的棋子.如果某两个相同的棋子,可以 ...
- 在使用ubuntu16.04+python3.5 下使用pip3出现pip3 error - '_NamespacePath' object has no attribute 'sort'
使用pip3安装tensorflow以及gensim等时,出现如下错误: Traceback (most recent call last): File "/usr/local/bin/pi ...
- python 正则表达式口诀
正则其实也势利,削尖头来把钱揣: (指开始符号^和结尾符号$) 特殊符号认不了,弄个倒杠来引路: (指\. \*等特殊符号) 倒杠后面跟小w, 数字字母来表示: (\w跟数字字母;\d跟数字) ...
- CSS浮动和清除
float:让元素浮动,取值:left(左浮动).right(右浮动) clear:清除浮动,取值:left(清除左浮动).right(清除右浮动).both(同时清除上面的左浮动和右浮动) 1.CS ...
- 【Android framework】am命令启动Activity流程
源码基于Android 4.4. am start -W -n com.dfp.test/.TEstActivity -W:等目标Activity启动后才返回 -n:用于设置Intent的Comp ...
- 可以高度定制的代理服务器anyproxy
简介 anyproxy是一款可以高度定制的代理服务器,基于nodejs. 特征 支持https明文代理 支持低网速模拟 支持二次开发,可以用javascript控制代理的全部流程,搭建前端个性化调试环 ...
- Queue类
1.LinkedBlockingQueue:基于链接节点的可选限定的blocking queue . 这个队列排列元素FIFO(先进先出). 队列的头部是队列中最长的元素. 队列的尾部是队列中最短时间 ...