ClientDataset读取sqlite3数据库,中文乱码有关问题

ClientDataset读取sqlite3数据库,中文乱码问题
如题:用ClientDataSet关联上sqlite3的一张表,表中有中文字段,但是当用DBGrid显示出来时,中文乱码,该怎么解决

------解决方案--------------------
我来了,楼主还在么?

经研究发现,问题的主要原因是你写入数据的时候,字符的编码是ANSI的,而在DBGrid中显示时,则是按UTF-8的编码显示,所以出现乱码。那么解决方法就是:写入时按UTF-8编码写入,如:

C/C++ code
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    char * errmsg;

    AnsiString strSQL = AnsiString().sprintf(
        "insert into t1(id, name) values(1, '%s')",
        AnsiToUtf8("张三"));

    int result = sqlite3_exec(PDB, strSQL.c_str(), 0,0, &errmsg);
    if (result)
    {
        Label1->Caption = "插入数据失败";
    }
    else
    {
        Label1->Caption = "插入数据成功";
    }
}