ITPub博客

首页 > 数据库 > 数据库开发技术 > 【YashanDB 知识库】如何设置 yasql 客户端的字符编码

【YashanDB 知识库】如何设置 yasql 客户端的字符编码

原创 数据库开发技术 作者:qiaoyikefu 时间:2025-02-20 17:15:22 0 删除 编辑

问题现象

客户刚开始使用 YashanDB , 对如何配置客户端的编码不熟悉, 直接执行不同编码的 sql 文件报错

YAS-00218 string conversion failed

 

问题的风险及影响

影响测试业务的开展。

 

问题影响的版本

YashanDB 版本:所有版本

 

问题发生原因

1 、如果客户端的编码和服务端一致,不需要做编码转换,如果客户端编码和服务端编码不一致, yasql 采用类似 linux 命令 iconv 的逻辑,对字符串格式做转换。

2 、客户端编码是在 $YASDB_HOME/client/yasc_env.ini 中配置,不配置 linux 下默认是 UTF8 , windows 下默认是 GBK

 

 

3 、服务端的配置参数是由建库参数 CHARACTER_SET 控制,安装之后通过系统参数查看

 

 

4 、通过下面的方法做排查确认,正确设置客户端编码之后,问题解决。

 

解决方法及规避方式

怎么确认文件的编码?

1 、 xxd 查看十六进制编码,在线对比编码:

字符 编码/ 解码 - 锤子在线工具 (toolhelper.cn)

 


 

 

注意:file -i 检查的编码存在问题,应以检查到的实际编码为准 ,如下图实际编码是 GBK ,但是 file -i 命令显示是 ISO-8859-1

 

 

2 、使用 iconv 转换确认

如果源编码是正确的, iconv 可以转换成目标编码,如果源编码输入错误, 则转换会失败。

根据官网,配置用户客户端编码

字符集配置 | YashanDB Doc (yasdb.com)

注意:

1 、客户端编码不配置, linux 下默认是 UTF8 , windows 下默认是 GBK

2 、 yasc_env.ini 编码怎么填, 参考下面表格:

 

 

验证编码设置结果

使用-f 执行对应的 sql 文件,执行成功则 yasql 客户端编码转换成功。

 

 

其他

终端一般需要设置自己的编码格式, 如 xshell 在这里设置:

 

vi 的时候, 使用 set encoding=gbk 修改编码, 创建对应的验证文件。

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70043300/viewspace-3073199/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2025-01-14

  • 博文量
    206
  • 访问量
    188338