你看mysql时是用什么来看的?直接在dos下查看?还是用phpmysqladmin之类的WEB管理程序来看?在DOS下由于跟OS有关,所以只能以ANSI码来显示,自然是无法显示出UTF-8的.在WEB面上查看数据时,要先确认一下你的WEB页是否已经设置为UTF-8了.
你的COM件我不太清楚,应该可能只是一个连接用的东西.所以关系不太大.如果写入的文字在UTF-8下仍是乱码的话,有可能是写的时候不对.PHP的页面先确定一下是不是以UTF-8来显示的.特别是HTML页面的charset值一定要指定为UTF-8,这样在写入时,PHP才能以UTF-8来写入.
对于从WEB页写入数据库时,文字编码本身是不需要转换的.PHP执行写入时,根据这个WEB页面的charset值来确定文字编码.

解决方案 »

  1. $obj=new COM("SynchroData.OperationDB");
    $obj->ConnexionDB("localhost","root","root",3306);//连接数据库服务器
    $obj->ConnexionDataBases("testb");//连接数据库
    $obj->ExecuteDB('SET character_set_results=UTF8;');
    $obj->ExecuteDB('SET NAMES gb2312;');
    $obj->ExecuteDB("insert into  customer (name,pass,phone) values ('中文测试','中文测试','a')");//
      

类似问题 »