在解决乱码问题前,必须先搞清楚几个相关的问题。
为每个jsp页面设置了其编码格式(utf-8),但传递数据到另一页面时依然显示为乱码?
首先要需要了解的是web容器默认编码是iso-8859-1,一个汉字占用两个字节,而在utf-8中一个汉字占用三个字节。所以在数据传递过程中,必须手动设定容器编码格式,否则会出现字符位丢失的情况。即3个字节变为两个字节,自然会变成乱码。
为什么保存到数据库中的数据都变成了乱码?
原理同上,首先要搞清楚使用的数据库默认的编码格式,比如mysql默认的字符编码是ISO-8859-1。所以必须手动修改其默认编码格式。
清楚了以上问题后,再来看如何解决utf-8的乱码问题。
1.设置web容器的编码格式。为你的servlet的doGet或doPost方法开始处加入如下代码:
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
2.为每个jsp页面指定其编码格式。<%@ page pageEncoding="utf-8"%>
3.在连接数据库用的URL后加入:useUnicode=true;characterEncoding=utf-8 如:
url="jdbc:mysql:///db1?useUnicode=true;characterEncoding=utf-8",
4.为指定数据库默认编码格式。在C:\WINDOWS目录下找到my.ini文件,并在[mysqld]中加入default-character-set=gbk,重新启动mysql服务。
至此,乱码问题全部解决。起初总搞上去不清,为什么要将mysql的默认编码格式设置为gbk,后来由相关的资料得知utf-8默认输入编码方式为gbk,默认输出编码方式为utf-16be。
个人认为,将数据进行utf-8进行编码的目的(即将中文编码为%的形式),主要是为了在多层服务间进行数据传输时,防止发生字符丢失(如msn)。普通的web程序显然没有必要这样做,只要使用以上方法进行处理,就可以有效的解决乱码问题,从而结省存储空间。如果都像公司的SC系统那样,将一个汉字编码为18个字符后,再存储到数据库中,抛开效率不说,就存储空间的浪费就够人受的,要知道,那是需要银子地!
http://blog.csdn.net/liliangzhao/archive/2007/12/18/1947468.aspx
分享到:
相关推荐
本文将详细讨论如何在Eclipse中解决GBK转UTF-8乱码的问题,以及介绍一种插件工具来帮助统一编码格式。 首先,我们需要了解GBK和UTF-8编码的区别。GBK是中国大陆的标准汉字编码,它是GB2312的扩展,包含更多的汉字和...
总的来说,"source insight 3.5 UTF-8中文乱码插件"是解决Source Insight 3.5与UTF-8编码不兼容问题的有效工具,通过正确安装和应用此插件,开发者可以更顺畅地在Source Insight环境中阅读和编辑包含中文字符的代码...
通过以上方法,我们可以有效地解决Java JSP项目中的UTF-8乱码问题。在实际开发中,一定要养成良好的编码习惯,避免因为编码问题带来的不必要的麻烦。同时,定期复习和总结有关编码的知识点,对于提升开发效率和代码...
在IT行业中,字符编码是一个非常重要的概念,尤其是在处理多语言数据和跨平台通信时。UTF-8和GBK是两种常见..."UTF-8toGBK.vi"这个VI提供了一个实用的工具,可以帮助开发者解决在处理中文字符串时可能出现的编码问题。
标题中的“PB9转换utf-8例子”指的是在PowerBuilder 9(PB9)环境下将数据从非UTF-8编码转换为UTF-8编码的一种解决方案。由于PB9本身不直接支持这种转换,开发者通常需要利用外部库或者特定的编程技巧来实现这个功能...
这个插件的主要目的是解决Source Insight在显示UTF-8编码的中文文件时可能出现的乱码问题。在没有这个插件的情况下,Source Insight可能无法正确识别并渲染中文字符,导致屏幕上显示的是一串无法解读的符号。通过...
在原pager-taglib 的基础上重新生成新的jar包,解决乱码问题。
在Java编程中,UTF-8编码是一个非常常见且广泛使用的字符编码格式,它能支持全球大部分语言的字符表示。然而,UTF-8有一个特殊特性,那就是它可以带有Byte Order Mark(BOM),这是一个特殊的字节序列,用于标识数据...
Java避免UTF-8的csv文件打开中文出现乱码的方法 在Java中,避免UTF-8的csv文件打开中文出现乱码的方法是非常重要的。csv文件是 comma separated values 的缩写,常用于数据交换和导入导出操作。然而,在Java中读取...
解决SAS EG导入UTF-8编码文本数据文件的乱码问题,通常需要在导入文件之前明确指定文件的编码类型。SAS EG提供了编码识别和转换的选项,但正确识别UTF-8编码的中文字符可能需要一些额外的步骤。为了解决乱码问题,...
Linux Vim 显示 UTF-8 文档乱码的解决方法 在 Linux 系统中,Vim 是一种常用的文本编辑器,但是在使用 Vim 的时候,经常会遇到 UTF-8 文档乱码的问题。为了解决这个问题,我们需要了解 Vim 中的四个与编码有关的...
ArcGIS默认dbf代码页-设置为UTF-8,解决有需要将gdb导出成shape file并将字符集设置成Utf-8以避免中文乱码的情况。
在IT领域,字符编码是一个非常重要的概念,尤其是在处理多语言文本时。...在给定的压缩包文件“bmhzgj”中,可能包含的就是一个用于实现UTF-8与ANSI字符互转的工具,用户可以下载并使用它来解决实际问题。
操作方法(需要管理员权限): !!! 执行前,请务必备份注册表 1. 解压压缩包 2. 双击 .reg 注册表文件导入 更多内容可参考:...适合人群:需要修改 CMD 编码为 UTF-8 的人群
Source Insight 插件,解决SI UTF-8中文显示乱码问题。 Source Insight Patch File, solve display wrong code when using UTF-8 chinese charater
将cmd编码格式永久改为utf-8,解决部署以后tomcat乱码问题
GBK、GB2312和UTF-8是三种常见的字符编码标准,每种都有其特定的应用场景和特点。C#作为.NET框架下的主要编程语言,提供了丰富的类库支持对不同编码格式之间的转换。 1. **GBK编码**:GBK是中国大陆广泛使用的汉字...
总的来说,“TXT批量转UTF-8的工具”是解决文本编码问题的一种实用方法,它帮助我们克服了ANSI编码的局限性,使我们的TXT文件能在各种环境中正确显示和处理。对于IT从业者来说,了解不同文本编码的特性和转换方法,...
综上所述,这个"utf-8码转换器"是解决编码不兼容问题的有效工具,通过SWT提供的图形界面,使得操作更加直观易用,对于开发者和普通用户来说都非常实用。理解和掌握字符编码及其转换原理,是每一位IT从业者必备的基础...