•ASCII
ØASCII使用7个比特(bit)进行字符编码,最多可以表示的字符数量为27(128)个字符,这些字符包括了大小写英文字母、阿拉伯数字、标点符号、控制字符和其他符号。每个字符用一个字节表示,每个字节的最高位为0。例如:字符“A”在用ASCII码中用2进制的“01000001”表示,换算成10进制为“65”。
 
 
•ISO8859-1
ØISO8859-1,又称Latin-1,是在ASCII的基础上,使用8比特编码,新增了一些字符。新增的字符主要用来支持部分欧洲国家所使用的语言,例如:德语、葡萄牙语和西班牙语等。也就是说,ISO8859-1兼容ASCII。
ØISO8859另外定义了14个适用于不同文字的字符集(8859-2到8859-15),这些字符集共享0-127的ASCII码,只是每个字符集都包含了128-255的其他字符
 
 
•GBK
Ø在GB2312的基础上又进行了扩充。在1995年,推出了《汉字内码扩展规范》,简称GBK。
ØGBK收录了21886个汉字和图形符号,其中汉字21003个,图形符号883个,并且向下与GB2312编码完全兼容。
 
 
•GB18030
ØGB18030-2000编码标准是由信息产业部和国家质量技术监督局在2000年联合发布的,GB18030编码标准是在原来的GB2312和GBK编码标准的基础上进行扩充,增加了一些新的字符,特别是一些少数民族使用的字符。它的主要目的是为了解决一些生、偏、难字的问题。
•BIG5
ØBIG5又称为大五码,是针对繁体汉字的汉字编码,目前广泛应用在在台湾、澳门和香港地区的电脑系统中。BIG5也是双字节编码,一共收录了5401个常用字和7652个次常用字。
•Unicode
Ø1991年Unicode把世界上几十种文字整合在一个字符集中,Unicode中每个字符都有一个唯一的数字进行表示。Unicode是由 Unicode 学术学会(Unicode Consortium)进行相关标准的制订与推广。
Ø现在Unicode已经被广泛的使用,Java、Windows XP、和MS Office等软件内部都使用了Unicode作为内码。
Ø目前已经定义了40000多个不同Unicode字符,剩余的留给将来扩展使用。其中20000个字符用于汉字,11000左右个用于韩语音节。同样兼容ASCII。
•UTF-8
ØUTF是Unicode/UCS Transformation Format (统一字符集/统一字符编码转换格式)的缩写,UTF就是Unicode的一种字符编码(转换)方法。Unicode组织推荐使用的是UTF-8和UTF-16,UTF-8是一种变长的编码方式,也是当前Unicode最常用的一种字符编码(转换)方法。
•使用Unicode编码,一个英文字符要用两个字节,在Internet上,大多数信息使用英文表示的,如果采用Unicode编码,将会使数据量增加一倍。为了减少存储和传输英文字符数据的数据量,可以使用UTF-8编码。

因为中文字符的Unicode编码在0x0800与0xffff之间,所以数据如果是中文,采用UTF-8编码数据量会增加50%

•JSP文件的汉字问题
•Servlet的汉字问题
•表单处理的汉字问题
•数据库的汉字问题
•JSP文件的汉字问题
Ø通过浏览器调用JSP页面,在浏览器中所有的中文内容出现乱码。
Ø在JSP页面的开始,添加<%@ pageEncoding=“UTF-8”%>或者contentType="text/html;charset=utf-8"就可以解决这个中文乱码问题。
•Servlet的汉字问题
Ø通过浏览器调用Servlet,Servlet在浏览器中显示的内容出现乱码。
Ø在Servlet使用response对输出内容之前,先执行response.setContentType("text/html;charset=utf-8") ,设定输出的内容的编码为UTF-8。
•POST表单传递参数乱码
Ø通过JSP页面、HTML页面或者Servlet中的表单元素提交参数给对应的JSP页面或者Servlet,而JSP页面或者Servlet接收的中文参数值乱码。
Ø在接收POST 提交的参数之前, 使用request.setCharacterEncoding(“UTF-8”) 设定接收参数的内容使用UTF-8编码。
Ø更好的解决方法,就是使用过滤器技术,在接收参数之前,设定传递的参数内容的编码是UTF-8
•GET表单传递参数乱码
Ø使用表单传递参数,可以通过POST或者GET方式。不使用表单,还可以使用链接方式传递参数,这种传递参数的方法本质上就是GET方式传递参数,这种传递参数的值是中文,也会出现乱码。
Ø解决方法一:修改Tomcat的server.xml文件

<Connector port="8080"  protocol="HTTP/1.1“  maxThreads="150“

redirectPort="8443" URIEncoding="UTF-8"/>

Ø解决方法二:程序中进行编码转换处理

String name=request.getParameter("name");

byte b[]=name.getBytes("iso-8859-1");

name=new String(b,"utf-8");

out.println(name);

•写入MYSQL中文乱码
Ø运行mysql配置向导界面,指定正确字符集  utf-8s
Ø修改mysql安装目录下my.ini文件
Ødefault-character-set=utf8,共计两处。

java中文乱码问题的更多相关文章

  1. java中文乱码解决之道(一)-----认识字符集

    沉寂了许久(大概有三个多月了吧),LZ"按捺不住"开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要么是按照以前的经验修改,要么则是baidu.c ...

  2. java中文乱码解决之道(九)-----总结

    乱码,我们前台展示的杀手,可能有些朋友和我的经历一样:遇到乱码先按照自己的经验来解决,如果没有解决就google,运气好一搜就可以解决,运气不好可能够你折腾一番了.LZ之所以写这个系列博客就是因为遇到 ...

  3. java中文乱码解决之道(二)-----字符编码详解:基础知识 + ASCII + GB**

    在上篇博文(java中文乱码解决之道(一)-----认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述字符集.字符编码等基础知识和ASCII.GB的详情. 一.基 ...

  4. java中文乱码解决之道(七)-----JSP页面编码过程

    我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language=" ...

  5. 关于Java中文乱码与日期格式

    关于Java中文乱码与日期格式 Java中文乱码的问题其实很普遍了,首先,一般不会在Windows平台下面出现,同时,一般在Tomcat应用服务器下也都正常,但是到了WebSphere,Weblogi ...

  6. java中文乱码解决之道(二)—–字符编码详解:基础知识 + ASCII + GB**

    原文出处:http://cmsblogs.com/?p=1412 在上篇博文(java中文乱码解决之道(一)—–认识字符集)中,LZ简单介绍了主流的字符编码,对各种编码都是点到为止,以下LZ将详细阐述 ...

  7. java中文乱码解决之道(一)—–认识字符集

    原文出处:http://cmsblogs.com/?p=1395 沉寂了许久(大概有三个多月了吧),LZ“按捺不住”开始写博了! java编码中的中文问题是一个老生常谈的问题了,每次遇到中文乱码LZ要 ...

  8. Java中文乱码解决方案

    Java中文乱码解决方案   1.中文乱码解决方案,确保每个文件的默认编码是UTF-8         加入 URIEncoding="UTF-8" 代码中的设置 1>在se ...

  9. java中文乱码解决之道(七)—–JSP页面编码过程

    我们知道JSP页面是需要转换为servlet的,在转换过程中肯定是要进行编码的.在JSP转换为servlet过程中下面一段代码起到至关重要的作用. <%@ page language=" ...

  10. Java 中文乱码问题总结

    开发java应用出现乱码是很常见的,毕竟现在unicode的使用还不是很广泛,在使用gb2312(包含了gbk简体,big5繁体)的系统中要正确 实现中文的display和数据库的存储是最基本的要求. ...

随机推荐

  1. SqLite 使用 Dapper 查询INTEGER类型的主键问题

    在程序实体定义时: public int TableID { get; set; } 使用Dapper查询SqLite数据库时会报错 Error parsing column (= - Int64) ...

  2. XLSReadWrite控件简介

    2015-10-22  23:57:55 原帖地址:http://www.cnblogs.com/dabiao/archive/2011/07/08/2100609.html XLSReadWrite ...

  3. SGU 149. Computer Network( 树形dp )

    题目大意:给N个点,求每个点的与其他点距离最大值 很经典的树形dp...很久前就想写来着...看了陈老师的code才会的...mx[x][0], mx[x][1]分别表示x点子树里最长的2个距离, d ...

  4. 表单元素的submit()方法和onsubmit事件(转)

    1.表单元素中出现了name="submit"的元素 2.elemForm.submit();不会触发表单的onsubmit事件 3.动态创建表单时遇到的问题 表单元素拥有subm ...

  5. codeforces 463C Gargari and Bishops

    题目链接 这个题, 最主要的应该是找到对角线上的格子的关系. “ \" 这种对角线, 关系是x-y+n相等, ” / “ 这种, 关系是x+y相等.知道每个格子的两种对角线的值, 那么这个格 ...

  6. [C++]让CPU使用率曲线呈现为正弦曲线(一)

    看<编程之美>的第一题就很有意思: 写一个程序,让用户来决定Windows任务管理器的CPU占用率.可以实现下面三种情况: 1. CPU的占用率固定在50%,为一条直线: 2. CPU的占 ...

  7. printf与scanf的返回值、注意点

    printf()的返回值为其输出字符串常量的字符数(注意字符数与字数的区别)注意计数针对所有的打印字符,包括空格和不可见的换行字符(不包括字符串的空字符). scanf()函数返回成功读入的项目的个数 ...

  8. 《Pointers On C》读书笔记(第五章 操作符和表达式)

    1.C语言操作符优先级表 2.算术操作符中%(取模操作符)只适用于整型类型,其余几个操作符(+.-.*./)既适用于整型类型也适用于浮点类型.当/操作符的两个操作数都是整型时,它执行整除运算,其它情况 ...

  9. mock.js 使用教程

    mock.js 数据模板 #查看模板生成的数据 var data = Mock.mock({ //list|1-10 数组元素个数随机范围, id|+2 属性值递增, age|20-30数值随机范围 ...

  10. 《Java4Android视频教程》学习笔记(二)

    一:面向对象 1.对象 ①对象的使用方法 对象.变量 对象.方法 ②匿名对象 new A().方法 new A().变量 匿名对象会被分配到对内存中 java内存处理机制会对一定时间内无指针指向的对象 ...