`
wj.king
  • 浏览: 70754 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

UTF-8乱码解决

阅读更多
在解决乱码问题前,必须先搞清楚几个相关的问题。
为每个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
分享到:
评论

相关推荐

    eclispe GBK转UTF-8乱码解决

    本文将详细讨论如何在Eclipse中解决GBK转UTF-8乱码的问题,以及介绍一种插件工具来帮助统一编码格式。 首先,我们需要了解GBK和UTF-8编码的区别。GBK是中国大陆的标准汉字编码,它是GB2312的扩展,包含更多的汉字和...

    source insight 3.5 UTF-8中文乱码插件_sourceinsight3.5_utf-8_插件补丁_中文乱码_

    总的来说,"source insight 3.5 UTF-8中文乱码插件"是解决Source Insight 3.5与UTF-8编码不兼容问题的有效工具,通过正确安装和应用此插件,开发者可以更顺畅地在Source Insight环境中阅读和编辑包含中文字符的代码...

    java jsp解决utf-8乱码.zip

    通过以上方法,我们可以有效地解决Java JSP项目中的UTF-8乱码问题。在实际开发中,一定要养成良好的编码习惯,避免因为编码问题带来的不必要的麻烦。同时,定期复习和总结有关编码的知识点,对于提升开发效率和代码...

    UTF-8toGBK_labview编码gbk_LabVIEWUTF-8_utf-8toGbk_

    在IT行业中,字符编码是一个非常重要的概念,尤其是在处理多语言数据和跨平台通信时。UTF-8和GBK是两种常见..."UTF-8toGBK.vi"这个VI提供了一个实用的工具,可以帮助开发者解决在处理中文字符串时可能出现的编码问题。

    PB9转换utf-8例子

    标题中的“PB9转换utf-8例子”指的是在PowerBuilder 9(PB9)环境下将数据从非UTF-8编码转换为UTF-8编码的一种解决方案。由于PB9本身不直接支持这种转换,开发者通常需要利用外部库或者特定的编程技巧来实现这个功能...

    source insight UTF-8插件

    这个插件的主要目的是解决Source Insight在显示UTF-8编码的中文文件时可能出现的乱码问题。在没有这个插件的情况下,Source Insight可能无法正确识别并渲染中文字符,导致屏幕上显示的是一串无法解读的符号。通过...

    pager-taglib utf-8乱码解决

    在原pager-taglib 的基础上重新生成新的jar包,解决乱码问题。

    Java解决UTF-8的BOM问题

    在Java编程中,UTF-8编码是一个非常常见且广泛使用的字符编码格式,它能支持全球大部分语言的字符表示。然而,UTF-8有一个特殊特性,那就是它可以带有Byte Order Mark(BOM),这是一个特殊的字节序列,用于标识数据...

    Java避免UTF-8的csv文件打开中文出现乱码的方法

    Java避免UTF-8的csv文件打开中文出现乱码的方法 在Java中,避免UTF-8的csv文件打开中文出现乱码的方法是非常重要的。csv文件是 comma separated values 的缩写,常用于数据交换和导入导出操作。然而,在Java中读取...

    SAS EG导入UTF-8编码的文本数据文件时的乱码问题解决方法

    解决SAS EG导入UTF-8编码文本数据文件的乱码问题,通常需要在导入文件之前明确指定文件的编码类型。SAS EG提供了编码识别和转换的选项,但正确识别UTF-8编码的中文字符可能需要一些额外的步骤。为了解决乱码问题,...

    Linux 本编辑器vim显示utf-8文档乱码的解决方法.docx

    Linux Vim 显示 UTF-8 文档乱码的解决方法 在 Linux 系统中,Vim 是一种常用的文本编辑器,但是在使用 Vim 的时候,经常会遇到 UTF-8 文档乱码的问题。为了解决这个问题,我们需要了解 Vim 中的四个与编码有关的...

    ArcGIS默认dbf代码页-设置为UTF-8

    ArcGIS默认dbf代码页-设置为UTF-8,解决有需要将gdb导出成shape file并将字符集设置成Utf-8以避免中文乱码的情况。

    utf-8 ansi 字符互转 工具

    在IT领域,字符编码是一个非常重要的概念,尤其是在处理多语言文本时。...在给定的压缩包文件“bmhzgj”中,可能包含的就是一个用于实现UTF-8与ANSI字符互转的工具,用户可以下载并使用它来解决实际问题。

    修改 CMD 编码为 UTF-8 (解决 VS Jupyter 乱码等情况)

    操作方法(需要管理员权限): !!! 执行前,请务必备份注册表 1. 解压压缩包 2. 双击 .reg 注册表文件导入 更多内容可参考:...适合人群:需要修改 CMD 编码为 UTF-8 的人群

    Source Insight 插件 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乱码问题

    将cmd编码格式永久改为utf-8,解决部署以后tomcat乱码问题

    C#写的 GBK GB2312 UTF-8转换

    GBK、GB2312和UTF-8是三种常见的字符编码标准,每种都有其特定的应用场景和特点。C#作为.NET框架下的主要编程语言,提供了丰富的类库支持对不同编码格式之间的转换。 1. **GBK编码**:GBK是中国大陆广泛使用的汉字...

    Txt批量转UTF-8的工具

    总的来说,“TXT批量转UTF-8的工具”是解决文本编码问题的一种实用方法,它帮助我们克服了ANSI编码的局限性,使我们的TXT文件能在各种环境中正确显示和处理。对于IT从业者来说,了解不同文本编码的特性和转换方法,...

    utf-8码转换器(转换成utf-8码)

    综上所述,这个"utf-8码转换器"是解决编码不兼容问题的有效工具,通过SWT提供的图形界面,使得操作更加直观易用,对于开发者和普通用户来说都非常实用。理解和掌握字符编码及其转换原理,是每一位IT从业者必备的基础...

Global site tag (gtag.js) - Google Analytics