写入数据提示“postgresql提示:无效的 "UTF8" 编码字节顺序: 0x00”,遇到过几次基本都是有中文内容的情况下出现,英文提示是:“invalid byte sequence for encoding ‘UTF8’: 0x00″,直接上解决方法:

  1. 确认数据库的 编码是UTF8
    你可以通过以下 SQL 语句检查 PostgreSQL 数据库的编码:

    SHOW server_encoding;

2.确定数据库连接设定了编码是UTF8

 FDConnection.Params.Values['CharacterSet'] := 'UTF8';

3.对于传参方式的SQL,强制指定参数的类型为ftWideString

FDQuery.ParamByName('YourParam').AsWideString := '你的内容';

4.如果信息里面确实含有0x00的内容,过滤掉

 CleanStr := StringReplace(OriginalStr, #0, '', [rfReplaceAll]);
 FDQuery1.ParamByName('YourParam').AsString := CleanStr;

本文由 王守红 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论