数据库中文问题总结
来源:互联网 发布:隐藏表单域 存放json 编辑:程序博客网 时间:2024/05/08 09:11
在开发项目过程中间,使用 hibernate作为数据持久化层来封装对数据库进行的操作。其中经常会碰到一些数据库的中文问题。下面对其中经常碰到的情况作一个总结。(下面的文字也参考了网上一些资料。但是出处无从考证。不好意思)
Mysql:
如果使用 mysql数据库,那么在配置数据库过程中间最好设置mysql的数据库编码为 utf-8,配置图如下,注意要选择中前面的单选按钮 。
在hibernate连接数据库的时候,我们可以增加若干连接属性来解决问题 。下面我们可以使用下面方案来解决这个问题:
方法1:
如果是在hibernate.properties文件中配置数据库的连接,则我们 必须在hibernate.properties文件里数据库连接url后加上?characterEncoding=gbk&useUnicode =true
方法2:
如果是在hibernate.properties文件中配置数据库的连接,我们在hibernate.cfg.xml文件的<session-factory/>块中设置
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF-8</property>
那么在对mysql数据库的操作中,我们一般可以解决调中文问题 。
Sqlserver数据库
Sqlserver的中文问题和mysql很类似。但是sqlserver的数据库在表设计的时候,我们需要注意字段的类型
解决方法:
1:要么在Java中编码,
从数据库读取数据时,遇到中文时会乱码。我们对驱除的字符串进行转码
Context=new String(congtent.getBytes(“ISO8859-1“, “GBK“));就没有问题了
2:要么建立数据库的时候既采用Unicode
翻阅 SQL Server 联机丛书(本人的重要工具)
得知 SQL Server 2000 支持两类字符数据类型:
Unicode 数据类型 nchar、nvarchar 和 ntext。这些数据类型使用 Unicode 字符表示法。代码页不适用于这些数据类型。
非 Unicode 字符数据类型 char、varchar 和 text。这些数据类型使用单字节或双字节代码页中定义的字符表示法。
将数据库字段改为对应的 Unicode 数据类型。
再次执行程序输出中文一切正常。
Oracle数据库
好象在这个数据库下还没有碰到什么中文问题。只要注意最好使用最新的驱动程序即可ojdbc14.jar
总结
在我们进行j2ee编程的时候,中文问题分为两种情况:
1: 从客户端(ie)到服务器(servlet)。这里经常有问题问题,在服务器接受到以后就是乱吗,这个在网上有比较好的解决方法,使用过滤器是比较好的方法
2: 就是从应用服务器到数据库服务器。解决方法可以参考上面的方法。如果有遗漏的地方,敬请指正。不过千万不要将第一种中文问题的情况使用第二种办法来解决。
- 数据库中文问题总结
- 数据库中文问题总结
- 数据库中文问题总结
- 总结解决中文数据库乱码或者页面显示乱码问题
- mysql数据库中文乱码问题总结及解决手段
- 数据库 中文乱码问题
- 数据库中文乱码问题
- 数据库中文乱码问题
- 数据库中文问题
- 数据库中文乱码问题
- 数据库中文乱码问题
- JSP中文问题总结
- JSP中文问题总结
- 中文乱码问题总结
- Java中文问题总结
- Rails中文问题总结
- AJAX中文问题总结
- AJAX中文问题总结
- 在VC中使用ADO开发数据库应用程序
- ADO.NET数据库备份
- Class 类|类加载器|AOP|加密|JUnit
- 在java中如何防止从其它线程类运行run方法
- ADO in VC++
- 数据库中文问题总结
- 工作流|UML
- ADO Overview
- C#读写文件
- ADO Providor
- XNA带来什么
- JUnit|测试驱动|组合设计模式
- 代理模式与Java动态代理类
- 上周被鄙视