六合图库大全马报彩图|六合图库网址大全|
Jquery中文网 www.mibzvo.tw
Jquery中文网 >  脚本编程  >  java  >  正文 Java数据库字符国际化

Java数据库字符国际化

发?#38469;?#38388;:2019-10-09   编辑:www.mibzvo.tw
jquery中文网为您提供Java数据库字符国际化等资源,欢迎您收藏本站,我们将为您提供最新的Java数据库字符国际化资源
<script>ec(2);</script>
数据库字符国际化是大家提问最多的问题,例如MySQL数据库大家可能在JDBC-URL添加useUnicode=true&CharacterEncoding=GBK作为中文支持的基本条件。但这有时破坏了数据的完整性,如果某些人?#20013;?#22823;意,就会导致数据编码错误,产生乱码。因此,我们需要一些手段在程序内部进行编码处理。人们一般通过在应用上使用 String(bytes:byte[], enc:String)/String.getBytes(enc:String)进行字符串编解码,这样做虽然易懂,但是如果遇到大字段表格,手动编码时费时费力。
我的方法:通过研究JDK类库,可以感觉到多层处理机制在数据处理上的优越性。我们完全有可能在数据库上建立一个中间层用于字符的国际化处理,我就是这么做的。仔细研究一下JDBC操作数据库出现字符编码问题的根源,很容易发现多数情况是ResultSet的几个String方法在作怪,因此我们就完全可以编写一个ResultSet中间层进行国际化处理,源码如下:
public class I18nResultSet implements ResultSet{ private String encoding; private ResultSet rs; public I18nResultSet(ResultSet rs, String encoding) throws java.io.UnsupportedEncodingException{ //检查该编码名称是否被系统支持。
  "".getBytes(encoding); this.rs = rs; this.encoding = encoding; } … … //以下几个方法是进行String字符串的重编码. public String getString(int index) throws SQLException{ String data = null; try{ data = new String(rs.getBytes(index), encoding); }catch(java.io.UnsupportedEncodingException uee){} } public String getString(Stirng field) throws SQLException{ String data = null; try{ data = new String(rs.getBytes(field), encoding); }catch(java.io.UnsupportedEncodingException uee){} } public void updateString(int index, String value) throws SQLException{ try{ rs.updateBytes(index, value.getBytes(encoding)); }catch(java.io.UnsupportedEncodingException uee){} } public void updateString(String field, String value) throws SQLException{ try{ rs.updateBytes(field, value.getBytes(encoding)); }catch(java.io.UnsupportedEncodingException uee){} } … …}
可以看出, 所有的String操作?#38469;?#29992;特定编码的字节数组进行存取,这样通过定义encoding的值实现数据库存取数据编码的一致性,且encoding完全可以通过在配置信息中动态定义。

您可能?#34892;?#36259;的文章:
PostgreSQL从菜鸟到专家系列教程(1)PostgreSQL介绍
PostgreSQL从菜鸟到专家系列教程(5)什么是数据库管理系统
PostgreSQL从菜鸟到专家系列教程(3)数据库的数据存取设计
PostgreSQL从菜鸟到专家系列教程(8)数据定义 字符数据类型
jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
PHP程序员最容易犯的11个MySQL错误
javascript 格式化时间日期函数代码
vbscript基础教程-数组
NoSQL数据库之MongoDB入门详解
学习php的防SQL注入函数:mysql_real_escape_string

[关闭]
六合图库大全马报彩图
怎么玩转彩名堂 稳赚彩票 幸运飞艇人工全天在线计划 澳门骰子猜大小玩法 时时彩稳赚不倍投技巧 重庆时时彩彩官方开奖 两张扑克比点数怎么玩 全天pk拾计划五码两期版 重庆时时开彩直播24小时都开 手机特惠活动