2011-08-07 23 views
0

我有一个Unicode字符的问题。我想要的是连接到从Access的mdb数据库,这已经完成,并获得一些信息。一切都很好,直到我开始得到问题标记字符而不是unicode字符。问题在Windows中的PHP和MS Access数据库,而不是unicode字符

我已经加入follwoing代码在每一页顶部的ASP之前固定的:

<%@LANGUAGE="JAVASCRIPT" CodePage=65001%> 

但是,我找不到任何PHP类似的解决方案。 有没有人遇到过这个问题?

请记住,我在Windows中使用PHP必须连接到MS Access数据库。 我还可以使用下面的两个COM口建立连接,并记录:

COM('ADODB.Connection') 
COM('ADODB.Recordset') 

编辑:

有没有这让我设置字符为UTF-8的任何关键字? 下面是我用我所有的连接

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=database.mdb;" 

我曾尝试连接字符串以下两个似乎MS Access不支持的字符集,在所有。

"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=database.mdb;character set=ISO8859_1;" 
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=database.mdb;Charset=ISO8859_1;" 

在这里需要一些帮助,请....

感谢

阿里

回答

1

所以我想没有人知道这个问题。所以我去了所有的数据从MS Access传输到MySql。我还在MySql中将utf8设置为我的主要集合。然后,我创建一个PHP类连接到MySQL和这里的代码的重要组成部分:

class MySqlConn 
{ 
    private $m_dbConn; 
    private $m_error; 

    public function __construct($location, $username, $password) 
    { 
     $this->m_error = FALSE; 
     $this->m_dbConn = mysql_connect($location, $username, $password); 
     if(!$this->m_dbConn) $this->m_error = mysql_error(); 
     mysql_set_charset('utf8', $this->m_dbConn); 
    } 
. 
. 
. 
} 

此代码的重要部分是__constrcut方法,这表明你的连接的字符集的类型的最后一行。如果你没有设置,你总是得到问号字符而不是unicode字符。

希望它可以帮助别人。

干杯,

阿里