Вопросительные знаки вместо юникода в PHP и база данных MS Access в Windows - PullRequest
0 голосов
/ 07 августа 2011

У меня проблема с символом Unicode.Я хочу подключиться к базе данных Access mdb из php, что уже сделано, и получить некоторую информацию.Все хорошо, пока я не начинаю получать знаки вопроса вместо символов юникода.

Я уже исправил это в ASP, добавив следующий код вверху каждой страницы:

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

Однако я не смог найти аналогичного решения для PHP.Кто-нибудь сталкивался с этой проблемой раньше?

Помните, я использую PHP в Windows, которая должна подключаться к базе данных MS Access.Я также использую следующие два COM для создания соединения и набора записей:

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

EDITED:

Есть ли какое-либо ключевое слово, которое позволяет мне устанавливать символы в UTF-8?Вот строка подключения, которую я использую для всех своих подключений

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

Я попробовал следующие два и, похоже, MS Access вообще не поддерживает charset.

"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 Ответ

1 голос
/ 07 августа 2011

Так что, думаю, никто не знает об этом вопросе. Поэтому я отправил все свои данные из 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, которая указывает тип кодировки вашего соединения. Если вы не установите это, вы всегда получите знаки вопроса вместо символов Юникода.

Надеюсь, это кому-нибудь поможет, где-нибудь.

Приветствия

Али

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...