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 ...
随机推荐
- [USACO13NOV] Pogo-Cow
https://www.luogu.org/problem/show?pid=3089 题目描述 In an ill-conceived attempt to enhance the mobility ...
- [Luogu 2604] ZJOI2010 网络扩容
[Luogu 2604] ZJOI2010 网络扩容 第一问直接最大流. 第二问,添加一遍带费用的边,边权 INF,超级源点连源点一条容量为 \(k\) 的边来限流,跑费用流. 大约是第一次用 nam ...
- TOJ 1005 Hero In Maze (深搜)
描述 500年前,Jesse是我国最卓越的剑客.他英俊潇洒,而且机智过人^_^. 突然有一天,Jesse心爱的公主被魔王困在了一个巨大的迷宫中.Jesse听说这个消息已经是两天以后了,他知道公主在迷宫 ...
- 如何彻底关闭退出vmware虚拟机
如何彻底关闭退出vmware虚拟机 每次使用虚拟机之后退出时,它都会在系统托盘区留下一个虚拟机图标,该如何彻底关闭退出vmware虚拟机呢? 首先我们需要运行一下虚拟机程序 1:我们如果要对虚拟机进行 ...
- bzoj 1912 tree_dp
这道题我们加一条路可以减少的代价为这条路两端点到lca的路径的长度,相当于一条链,那么如果加了两条链的话,这两条链重复的部分还是要走两遍,反而对答案没有了贡献(其实这个可以由任意两条链都可以看成两条不 ...
- React的单向数据流与组件间的沟通
今天来给大家总结下React的单向数据流与组件间的沟通. 首先,我认为使用React的最大好处在于:功能组件化,遵守前端可维护的原则. 先介绍单向数据流吧. React单向数据流: React是单向数 ...
- Python 下调用C动态链接库 -- (转)
在linux开发的动态链接库需要被python调用,首先需要生成.so文件. 生成动态链接库的方法网上有很多,主要就是首先根据源文件编译生成.o,然后链接这些.o文件-shared生成.so.需要注意 ...
- Apache的Commons Lang和BeanUtils
1.字符串的空判断 //isEmpty System.out.println(StringUtils.isEmpty(null)); // true System.out.println(S ...
- Python大牛开小灶,一对一问答
CSDN知识小饭桌 大牛开小灶 小范围,高质量,在线交流QA 参与嘉宾 知识库特邀编辑伊海波,滴滴出行工程师,曾任龙图龙图游戏数据分析部技术负责人.CSDN博客专家,资深Python/Golang ...
- linux运维记
nmap 127.0.0.1 命令查看当前服务器对外有多少端口,用于检查漏洞 vim ctrl+z ,jobs,fg 切换控制应用程序 vim 执行命令 #!sh aa.sh执行命令 运维系统监控开源 ...