PHP array_key_exists() возвращает false, если ключ содержит многобайтовый символ из базы данных кодировки UTF-8.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHP array_key_exists() возвращает false, если ключ содержит многобайтовый символ из базы данных кодировки UTF-8.

Сообщение Anonymous »

У меня есть база данных с кодировкой UTF-8 для многоязычных целей.
Предполагается, что все в моем приложении будет в UTF-8.
Однако у меня проблема с функцией array_key_exists().
  • Она начинается с запроса к базе данных

    Код: Выделить всё

    SELECT name, value from TABLE
  • Затем я заполняю хэш-карту результатом:

    Код: Выделить всё

    $hashmap[ $row['name'] ] = $row['value']
Но когда имя в БД содержит акценты, такие как «é», следующее возвращает false:

Код: Выделить всё

$this->db->select('name');
$this->db->select('value');
$this->db->from('table');
$q = $this->db->get();
$res = $q->result_array();

foreach ($res as $value) {
$hashmap[$value['name']] = $value['value'];
}

$key = 'name é'; // an ord here returns 233
array_key_exists($key, $hashmap)
Я не знаю, как с этим поступить дальше, сталкивались ли вы с такой проблемой?

Подробнее здесь: https://stackoverflow.com/questions/883 ... haracter-f
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»