我用delphi与mysql数据库连接,请问怎样在delphi中输出时转换mysql的字符集(编码)呢?请高手指教,能给一个例子吗?谢谢!

解决方案 »

  1.   

    从MySQL 4.1开始引入的多语言支持确实很棒,而且一些特性已经超过了其他的数据库系统。不过我在测试过程中发现使用适用于MySQL 4.1之前的PHP语句操作MySQL数据库会造成乱码,即使是设置过了表字符集也是如此。我读了一下新的MySQL在线手册中第十章”Character Set Support“后终于找到了解决方法并测试通过。 MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。 当我们按照原来的方式通过PHP存取MySQL数据库时,就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句: SET NAMES ‘utf8′; 另外,把  SET NAMES ‘utf8′;  的uft8改成服务器上创建数据库时的默认字符集就好了!!!
    ==========================================
    还有一个更简单的解决办法:如果你用的是MySQL Data Access Components (MyDAC)控件与mysql 5相连的话,在TMyConnection的Options属性里设置charset为相应的编码,比如utf8就行了。