JSP乱码详解

1. 首先要明白编码



编码是根据一定的协议或格式把模拟信息转换成比特流的过程。



几种常见的编码是:utf-8, ascII, gb2312, gbk, Unicode, ISO8859-1, BIG5.....





utf-8: utf编码兼容iso8859-1编码,同时也可以用来表示所有语言的字符,不过,utf编码是不定长编码,每一个字符的长度从1-6个字节不等。另外,utf编码自带简单的校验功能。一般来讲,英文字母都是用一个字节表示,而汉字使用三个字节。





ascII: 它用7个二进制位来表示,由于那个时期生产的大多数计算机使用8位大小的字节,因此用户不仅可以存放所有可能的ASCII字符,而且有整整一位空余下来。如果你技艺高超,可以将该位用做自己离奇的目的:WordStar中那个发暗的灯泡实际上设置这个高位,以指示一个单词中的最后一个字母,同时这也宣示了WordStar只能用于英语文本。





gb2312: GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》





gbk: GBK编码,是在GB2312-80标准基础上的内码扩展规范,使用了双字节编码方案





Unicode: Unicode给每个字符提供了一个唯一的数字,不论是什么平台,不论是什么程序,不论什么语言。



Unicode标准已经被这些工业界的领导们所采用,并且,Unicode是实现ISO/IEC 10646的正规方式。许多操作系统,所有最新的浏览器和许多其他产品都支持它。Unicode标准的出现和支持它工具的存在,是近来全球软件技术最重要的发展趋势。





ISO-8859-1: 浏览器提交使用iso-8859-1编码,ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。





BIG5: 是目前台湾、香港地区普遍使用的一种繁体汉字的编码标准.







2. 大概了解后.我们对JSP的中文需要什么编码大概有一点知道吧.以下是JSP乱码解决方案:



1.页面显示:

<%@ page contentType="text/html;charset=utf-8"%>

<meta http-equiv="content-type" content="text/html; charset=utf-8">



2.浏览器提交使用iso-8859-1编码,需要转编码:

str = request.getParameter("s");

str = new String(str.getBytes("ISO-8859-1"),"utf-8");

或者设置

request.setCharacterEncoding("utf-8");



3.使用filter

<filter>

<filter-name>SetCharacterEncoding</filter-name>

<filter-class>

org.springframework.web.filter.CharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>utf-8</param-value>

</init-param>

</filter>

<!-- 要过滤得类型 -->

<filter-mapping>

<filter-name>SetCharacterEncoding</filter-name>

<url-pattern>*.do</url-pattern>

</filter-mapping>

4. 某些数据库需要指定数据库连接的编码:

jdbc:mysql://localhost/databaseName?user=root&password=&useUnicode=true&characterEncoding=utf-8

原文http://leisuredev.iteye.com/blog/714990

你可能感兴趣的:(Web,jsp,mysql,浏览器,jdbc)