`
vvnet
  • 浏览: 116519 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

hibernate 的中文乱码解决办法

    博客分类:
  • JAVA
阅读更多

我用 hibernate Synchronizer 时,在读出和写入数据的时候出现乱码。

解决办法有两种:

第一种办法:分两步:

1、解决保存到数据库时出现的乱码问题。在 hibernate.cfg.xml 中添加两行:

<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">gbk</property>

这样,当数据保存时就不会出现乱码。

2、解决从数据库读出数据时的乱码问题。在读出数据后把数据转换为 gbk 编码。

如: new String(getName().getBytes("ISO8859_1"),"gbk"),这时生成的 String 就是可以正常显示的中文了。

第二种办法:(来自:http://www.cnblogs.com/josson/archive/2005/03/16/119619.html

1, mysql安装时设置字符集utf-8, jdbc驱动3.0.15以上. 
2. hibernate配置文件中,加上属性 
<property name="connection.useUnicode">true</property> 
<property name="connection.characterEncoding">UTF-8</property> 

3. web.xml设置Filter 
================================================= 
<filter> 
  
<filter-name> 
   Set Web Application Character Encoding 
  
</filter-name> 
  
<filter-class>cn.com.commnet.util.SetEncodeFilter</filter-class> 
  
<init-param> 
   
<param-name>defaultencoding</param-name> 
   
<param-value>UTF-8</param-value> 
  
</init-param> 
 
</filter> 
 
<filter-mapping> 
  
<filter-name> 
   Set Web Application Character Encoding 
  
</filter-name> 
  
<url-pattern>/*</url-pattern> 
 
</filter-mapping>

============================================= 
SetEncodeFilter.java 
public class SetEncodeFilter implements Filter 
 
    
protected FilterConfig filterConfig = null
 
    
protected String defaultEncoding = null
 
    
/* (non-Javadoc) 
     * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) 
     
*/
 
    
public void init(FilterConfig arg0) throws ServletException 
        
// TODO Auto-generated method stub 
        this.filterConfig = arg0; 
        
this.defaultEncoding = filterConfig.getInitParameter("defaultencoding"); 
    }
 
 
    
/* (non-Javadoc) 
     * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) 
     
*/
 
    
public void doFilter( 
        ServletRequest request, 
        ServletResponse response, 
        FilterChain chain) 
        throws IOException, ServletException 

        
// TODO Auto-generated method stub 
        request.setCharacterEncoding(selectEncoding(request)); 
        chain.doFilter(request, response); 
    }
 
 
 
    
public void destroy() 
         
        
this.defaultEncoding = null
        
this.filterConfig = null
    }
 
 
 
    
protected String selectEncoding(ServletRequest request) 
 
        
return this.defaultEncoding; 
    }
 
 
}

分享到:
评论

相关推荐

    hibernate_中文乱码

    解决Hibernate中文乱码问题通常可以从以下几个方面入手: 1. **客户端**:确保客户端发送的数据采用正确的字符编码。 2. **服务器端**:配置服务器端(如Servlet容器)的字符编码,使其与客户端保持一致。 3. **...

    解决struts2.1.6+spring+hibernate 中文乱码

    ### 解决Struts2.1.6 + Spring + Hibernate 中文乱码问题 在Web开发过程中,特别是使用Java EE框架时,字符编码问题一直是开发者关注的重点之一。对于使用Struts2.1.6、Spring以及Hibernate这三个框架组合的项目而...

    hibernate数据库中文乱码问题

    为了解决Hibernate中文乱码问题,我们需要从以下几个方面入手: 1. **配置文件设置**:确保Hibernate的配置文件(通常是`hibernate.cfg.xml`)中的数据库连接参数正确设置了字符集。例如,可以通过以下方式设置: ...

    hibernate+mysql乱码问题

    本文将深入探讨“hibernate+mysql乱码问题”的原因、解决方案以及如何预防这类问题。 首先,我们需要了解乱码问题的根源。在数据库层面,MySQL的编码格式对数据存储和检索至关重要。如果数据库、表或列的字符集不...

    解决hibernate 反向工程 备注中文乱码

    该项目是解决hibernate反向工程生成的实体文件中文备注乱码问题的。 试用环境 hibernate-version 4.0.1 Hibernate Tools 5.1.4.v20170413-1729 org.hibernate.eclipse.feature.feature.group JBoss by Red Hat ...

    Hibernate-tools解决hbm.xml中文注释乱码和生成实体类注释

    1. **解决`hbm.xml`中文注释乱码** 当我们在`hbm.xml`文件中添加中文注释,如果没有正确配置编码,很可能会出现乱码。解决这个问题的关键在于确保整个开发环境的一致性,包括IDE的编码设置、项目的编码设置以及`...

    hibernate+mysql 中文存入数据库乱码解决方法

    综上所述,解决hibernate+mysql环境下中文存入数据库乱码的问题,需要从Web应用配置、数据库配置、框架配置以及文件编码等多个方面综合考虑,确保整个数据处理链路的字符集一致且支持UTF-8。只有这样,才能确保中文...

    解决hibernate与MySql存储中文时出现乱码问题

    以下是解决hibernate与MySQL存储中文时出现乱码问题的详细步骤和相关知识点: 1. **配置Hibernate连接URL**: 在`hibernate.cfg.xml`配置文件中,需要正确设置连接URL以指定字符集。添加`useUnicode=true`和`...

    ssh项目spring+stuts+hibernate+sql server 中文乱码解决方案_lj管用.txt

    ssh spring+stuts+hibernate+sql server 中文乱码解决方案_lj管用.txt

    Hibernate错误及解决办法集合

    ### Hibernate常见错误及解决办法 #### 一、Nodefaultconstructorforentity 错误 **问题描述**:在使用Hibernate执行查询语句时,系统抛出`Nodefaultconstructorforentity`错误。 **可能原因**:该错误通常是由于...

    hibernate的中文问题的解决方案

    ### Hibernate中文问题解决方案 在开发基于Java的应用程序时,Hibernate作为一个强大的对象关系映射(ORM)框架被广泛采用。然而,在处理中文字符时,开发者可能会遇到各种各样的问题,如乱码显示等。本文将详细...

    Hibernate_MySQL中文乱码问题.doc

    ### Hibernate与MySQL中文乱码问题解析及解决方案 #### 一、问题概述 在使用Hibernate框架进行Java应用程序开发的过程中,尤其是在连接MySQL数据库时,经常会遇到中文显示乱码的问题。这一问题通常发生在从数据库...

    hibernate插入数据库乱码的解决方式

    本文将详细介绍如何在使用Hibernate框架进行数据库操作时解决中文乱码问题,特别是针对MySQL数据库。 #### Hibernate与乱码问题概述 在Java开发中,Hibernate作为一种流行的ORM(Object Relational Mapping)框架...

    SQL-SERVER-64位配置ORACLE连接-中文乱码问题

    本文将详细介绍如何解决64位系统下的SQL Server连接Oracle数据库时出现的中文乱码问题,并提供具体的配置步骤。 #### 一、背景介绍 当SQL Server尝试通过ODBC或JDBC等方式连接到Oracle数据库时,如果两个系统的...

    Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇

    在本篇文章中,我们将深入探讨如何解决Struts + Hibernate + MyEclipse + Tomcat + MySQL环境中出现的乱码问题。该问题通常出现在处理中文字符时,由于编码设置不当导致中文显示为乱码或无法正常读取。为了确保系统...

    sshz中文乱码解决方法

    对于基于SSH(Spring+Struts2+Hibernate)框架的Web应用来说,解决中文乱码通常需要从多个层面入手。 ##### 2.1 配置Struts2的国际化编码 可以在`struts.xml`文件中添加如下配置来设置应用默认使用的编码格式: `...

    解析Hibernate + MySQL中文乱码问题

    本文将深入解析在使用Hibernate框架与MySQL数据库时遇到的中文乱码问题,以及如何解决这一问题。 首先,我们需要理解中文乱码出现的根本原因。当Java应用程序中的持久化类包含中文字符串,并通过Hibernate映射到...

    SSH框架解决中文乱码

    在开发基于SSH(Struts2 + Spring + Hibernate)框架的应用程序时,经常会遇到中文乱码的问题。这些问题主要出现在两个方面:一是前端页面上中文字符显示不正常;二是向数据库(如Oracle)中插入包含中文的数据时...

    java web hibernate struts spring 全方位解决乱码

    在Java Web开发中,我们经常会遇到各种乱码问题,特别是在使用Hibernate、Struts和Spring等框架时。这些框架处理数据的方式以及与数据库交互的过程都可能导致字符编码不一致,从而引发乱码现象。以下是对这些技术全...

    解决Hibernate中MySQL的中文排序

    在使用Hibernate进行数据库操作时,可能会遇到MySQL数据库中文排序不正确的问题。这通常是由于字符集设置、数据库...通过以上步骤,可以有效地解决MySQL数据库在Hibernate中的中文排序问题,确保数据的正确展示和检索。

Global site tag (gtag.js) - Google Analytics