#字符集配置
YashanDB服务端和客户端支持GBK、UTF-8、ASCII和ISO-8859-1字符集,并支持根据场景需要配置数据库字符集。
# 背景信息
默认安装下,YashanDB服务端、yasql的Linux客户端、JDBC客户端等均为UTF-8字符集,yasql的Windows客户端字符集为GBK。
当服务端和客户端设置的字符集不同时,数据库操作产生的最终结果可能会与预期不一致,此时在客户端输入的字符串会以服务端字符集格式进行处理。
YashanDB数据库国家字符集仅支持为UTF-16,建库时指定,后续无法更改。
# 字符集配置原则
| 字符集 | 配置原则 |
|---|---|
| GBK | 如数据库只需要支持中文,数据量很大,性能要求也很高,建议选择双字节定长编码的中文字符集GBK。 |
| UTF-8 | 如应用程序需要处理各种各样的文字,或者需要将处理结果发布到不同语言的国家或地区,建议选择Unicode字符集,即UTF-8。此项为YashanDB推荐和默认的字符集。 |
| ASCII | 如数据库只需要支持ASCII收录的拉丁系字符,如英语和一些西欧语言,则可以选择ASCII字符集。 |
| ISO-8859-1 | 此字符集为单字节编码,能表示的字符范围是0-255,仅应用于全英文场景。 |
# 配置方法
# 设置服务端字符集
YashanDB支持在创建数据库时指定字符集,数据库创建后不能修改数据库服务端字符集。
CREATE DATABASE yashan
CHARACTER SET utf8;
Note:
YashanDB的列存表要求服务端字符集必须为UTF-8,使用其他字符集创建列存表将返回错误。
# 修改客户端字符集
在YashanDB客户端文件夹中新建client文件夹,并于client文件夹中新建空文件yasc_env.ini。
$ mkdir client $ cd client $ vi yasc_env.ini设置环境变量。
$ vi ~/.bashrc
export YASDB_HOME=/home/yasdb/yashandb_client
$ source ~/.bashrc
Note:
YASDB_HOME路径需要指向YashanDB客户端文件夹。
通过修改客户端环境变量文件yasc_env.ini设置客户端字符集。
$ cd $YASDB_HOME/client $ vi yasc_env.ini 添加 CHARACTER_SET=GBK(或者ASCII,或者ISO88591)