我正在研究一个脚本,该脚本从MySQL数据库中检索$ word中每个字母的值。该脚本效果很好,但不适用于像enye这样的拉丁字符。
示例代码:
$word = "Cañones";
$letters = str_split($word);
print_r($letters);
$query = "SELECT GROUP_CONCAT(Alpha) AS Alpha,
GROUP_CONCAT(Letter_Box_Width) AS Letter_Box_Width
FROM Font_Krinkes
WHERE Alpha IN ('" . implode("','", $letters) . "')";
print_r的输出
Array
(
[0] => C
[1] => a
[2] => ?
[3] => ?
[4] => o
[5] => n
[6] => e
[7] => s
)
PHP Notice: Undefined index: ?
PHP Notice: Undefined index: ?
在我看来,enye被错误地从$ letters数组存储和检索。它正在作为一个问号进行检索...然后,当然,对问号值的查询失败了,这就是为什么我遇到未定义索引错误的原因。如何处理数组中的这个enye字符?
阅读完注释后,我意识到我的代码不仅仅是mb_str_split问题,还有更多问题。我仍然无法正确查询数据库。
非常感谢您的帮助。
答案 0 :(得分:0)
在存储从数据库中获取字符串数据的ang并确保所有字符都能正常显示时,您需要设置连接的字符编码。只需添加以下行:
mysqli_set_charset($conn,"utf8");
,其中您的$conn
是您与数据库的连接。