gpt4 book ai didi

php - 非英文字符作为数组键 - "undefined index"

转载 作者:行者123 更新时间:2023-11-29 01:10:25 24 4
gpt4 key购买 nike

我有一个名称数组,我正在从 mysql 表中读取这些名称。一切正常,除了我刚刚注意到如果名称包含任何非英文字符,例如斯堪的纳维亚语、希腊语等。这会导致错误,“ undefined index ”。

但我不明白的是,在我的应用程序的另一部分使用相同的功能可以很好地列出这些名称。唯一的区别是发生此错误时我将名称专门作为参数传递。其他时候,我只是遍历整个列表并回显所有名称。

每个名称都是数组键,我在 else 返回的行上收到错误:

   if($nameParam ==""){ 
return $listOfNames;
}
else{
return $listOfNames[$nameParam];
}

有什么办法可以解决这个问题吗?

以某种方式检查每个名称并对 mysql 表应用某种编码/解码写入/读取会更好吗?如果是这样,最好的方法是什么?谢谢..

最佳答案

我查看了 PHP C 代码,看 PHP 是否确实以任何方式修改/去除数组键字符串中的 unicode 字符,但在那里找不到任何转换逻辑。为了确认这一点,我在 php.net 邮件列表上问了一个问题:

问:....blah blah ...我只是想知道 - 何时使用 unicode 字符数组键 - PHP 是否以任何方式剥离它们或影响它们?还是 PHP 只是将键视为二进制字符串,故事就此结束?

答:我相信字符串数组键被视为二进制字符串,并且从未修改过。我找不到你的来源,但我一直在努力这个假设并没有遇到问题。 UTF-8 key 绝对可以正常工作(*);我也不知道键可以有的最大长度(意思是你不必担心多字节字符被截断在中间)。

因此,我现在相信在数组键中使用任何 UTF8 字符都不会影响您像往常一样使用数组的能力。

还有

我相信您已经意识到这一点,但我会检查数据库是否使用正确的编码来存储数据。在 mysql 中,我总是使用 UTF-8 字符集和 utf8_general_ci 排序规则。

关于php - 非英文字符作为数组键 - "undefined index",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6886573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com