我有一个数据库,编码为 UTF-8,以支持多种语言。我认为我的应用程序中的所有内容都是UTF-8编码。
尽管如此,我在使用 array_key_exists 函数时遇到了问题。
以下是解决方案:
尽管如此,我在使用 array_key_exists 函数时遇到了问题。
以下是解决方案:
- 首先查询数据库:
SELECT name, value from TABLE
- 然后将结果填充到哈希映射表中:
$hashmap[ $row['name'] ] = $row['value']
但当 DB 中的名称包含像“é”这样的重音符号时,会返回 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)
我不知道该怎么进一步处理,你遇到过这个问题吗?
我有一个性能要求。
谢谢你的帮助。
var_dump
函数检查$hashmap
数组中是否包含namé
键值? - SERPROé
的ord
值为233,那么它不是UTF-8。 - deceze