如何将拉丁字符存储在数组中并成功将其检索为拉丁字母?

时间:2018-10-09 23:44:35

标签: php mysql

我正在研究一个脚本,该脚本从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问题,还有更多问题。我仍然无法正确查询数据库。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在存储从数据库中获取字符串数据的ang并确保所有字符都能正常显示时,您需要设置连接的字符编码。只需添加以下行: mysqli_set_charset($conn,"utf8");,其中您的$conn是您与数据库的连接。