日期:2014-05-16  浏览次数:20374 次

数据库字符集和编码转换

数据库管理系统支持某种编码,主要涉及三个方面:

?????? 数据库服务器支持。

?????? 数据访问接口支持。

?????? 客户端工具支持。

?

1??????? 数据库服务器字符编码

数据库服务器支持某种编码,是指数据库服务器能够从客户端接收、存储以及向客户端提供该种编码的字符(包括标识符、字符型字段值),并能将该种编码的字符转换到其它编码(如UTF-8编码转到GBK编码)。

1.1指定数据库服务器编码:

Postgresql

创建数据库时指定:

CREATE DATABASE … ENCODING …

可以取ASCIIUTF-8EUC_CN、……

1.2查看数据库编码

Postgresql

show server_encoding

2 数据库访问接口编码

?????? 数据访问接口支持某种编码,该接口要做到能对该种编码的字符进行正确读写,不应出现数据丢失、数据失真等情况。

JDBC接口为例:

JDBC接口一般根据JVMfile.encoding设置client_encodingset client_encoding to file_encoding

String转换成client_encoding编码的字节流,传给服务器端,原型String.getBytes(c