我有一个Unicode字符的问题。我想要的是从php连接到Access mdb数据库,这已经完成了,并获得一些信息。一切都很好,直到我开始得到问号字符而不是unicode字符。
我在ASP中通过在每个页面的顶部添加以下代码来修复这个问题:
<%@LANGUAGE="JAVASCRIPT" CodePage=65001%>
然而,我找不到任何类似的PHP解决方案。有人遇到过这个问题吗?
记住,我在Windows中使用PHP,它必须连接到MS Access数据库。我还使用以下两个COMs来创建连接和记录集:
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;"
这里需要帮助请....
感谢阿里所以我猜没有人知道这个问题。所以我把我所有的数据从MS Access转移到MySql。我还将utf8设置为MySql中的主要集合。然后我在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字符。
希望它能帮助到某些人。
欢呼,阿里