字符编码

字符编码

字符编码系统由将来自于一种字符集的每一个字符与其他某个东西(例如一个数字序列或者八位组序列)配对的代码构成,它们能让数据的传输和存储便利。Greenplum数据库支持多种字符集,包括ISO 8859系列等单字节字符集和EUC、UTF-8、Mule内部编码等多字节字符集。服务器端字符集在数据库初始化期间被定义,UTF-8是默认字符集但可以更改。客户端可以透明地使用所有受支持的字符集,但有一部分字符集不支持作为服务器端编码在服务器内使用。在把数据载入或者插入到Greenplum数据库中时,Greenplum透明地把数据从指定的客户端编码转换成服务器编码。在把数据送回到客户端时,Greenplum会把数据从服务器字符编码转换成指定的客户端编码。

数据文件必须使用一种Greenplum数据库能识别的字符编码。受支持的字符集请见Greenplum数据库参考指南。包含非法或者不受支持的编码序列的数据文件会在装载到Greenplum数据库时遇到错误。

Note: 在微软Windows操作系统生成的数据文件上,在载入到Greenplum数据库之前运行 dos2unix系统命令来移除任何Windows字符。

更改客户端字符编码

可以通过设置服务器配置参数client_encoding来改变一个会话的客户端字符编码。

SET client_encoding TO 'latin1';

将客户端字符编码更改回默认值:

RESET client_encoding;

显示当前客户端字符编码设置:

SHOW client_encoding;