gpt4 book ai didi

delphi - 插入 UTF8 数据库时字符串格式错误

转载 作者:行者123 更新时间:2023-12-03 15:02:42 25 4
gpt4 key购买 nike

我使用Delphi 2010、Firebird 2.5.2、IBExpress组件。

数据库字符集是UTF8。在数据库连接中UTF8。

数据库:

var 
Database: TIBDatabase;
begin
...
Database.params.Clear;
Database.params.Add('user ''SYSDBA'' password ''masterkey'' ');
Database.params.Add('page_size 16384');
Database.params.Add('default character set UTF8');

表:

CREATE TABLE NEW_TABLE (
NEW_FIELD VARCHAR(255)
);

连接代码:

  Database.params.Clear;
Database.params.Add('user_name=SYSDBA');
Database.params.Add('password=masterke');
Database.params.Add('sql_role_name=UTF8');
Database.Open;

插入代码:

var
IBSQL: TIBSQL;
begin
IBSQL := TIBSQL.Create(nil);
try
IBSQL.Database := db;
IBSQL.Transaction := tr

IBSQL.SQL.Text := 'insert into NEW_TABLE (NEW_FIELD) values (:param)';

IBSQL.params[0].Value := 'Ãabc©'; // unsupported symbols :(

if not IBSQL.Transaction.Active then
IBSQL.Transaction.StartTransaction;

IBSQL.ExecQuery; // "Malformed string" exception here

if IBSQL.Transaction.Active then
IBSQL.Transaction.Commit;
finally
FreeAndNil(IBSQL);
end;
end;

我收到“字符串格式错误”异常。如何插入这个字符串?

最佳答案

确保您的字段的字符集是 UTF-8。

创建新字段时,您有两种选择:

  1. 使用默认字符集创建一个域,并使用该域进行整理和设置字段
  2. 创建不带域的字段,设置字符集并手动整理。

下图中,显示了使用 IBExpert 通过域创建的字段。

IBExpert with domain and charset

关于delphi - 插入 UTF8 数据库时字符串格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16834281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com