Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php UTF-8不在带有数字键的多维数组中显示_Php_Session_Utf 8 - Fatal编程技术网

Php UTF-8不在带有数字键的多维数组中显示

Php UTF-8不在带有数字键的多维数组中显示,php,session,utf-8,Php,Session,Utf 8,我有一个脚本,它将一些西里尔文字放入会话变量中,如下所示:$\u session['cyrillic'][$y],其中$y是迭代器,因此最终数组将如下所示: [cyrillic] => Array ( [0] => ������ [1] => �������� [2] => ������ [3] => ������ 然而,在PHP、HTML和files save字符集(有和没有BOM)中都使用

我有一个脚本,它将一些西里尔文字放入会话变量中,如下所示:
$\u session['cyrillic'][$y]
,其中$y是迭代器,因此最终数组将如下所示:

[cyrillic] => Array
    (
        [0] => ������
        [1] => ��������
        [2] => ������
        [3] => ������
然而,在PHP、HTML和files save字符集(有和没有BOM)中都使用UTF-8标题后,我发现字符集设置没有任何问题(显然),因为使用西里尔文文本设置任何其他会话变量都可以

这意味着:
$\u SESSION['cyr']['txt']=$cyrillic\u string\u此处将正常工作,如下所示:

[cyr]=>数组
(
[txt]=>
)

所以,我不明白的是,为什么我不能用数字键而不是字母键将西里尔字母插入数组?当我需要使用迭代循环时,我如何解决这个问题

编辑:不是那样的。我可以将相同的文本插入另一个变量并回显它,或者是一个没有数字键值的会话变量,这样就可以正常工作

编辑:我还发现:

*我要讲的一句很难找到的文档语句是:“与PHP中的常规变量名一样,$\u会话关联数组中的键也受到同样的限制。”*


但是我想我可以用这样的数值做一个数组:$array[$I]?或者,这是否意味着由于键是ASSOC,$array['text'][$i]无法工作?

找到了解决方案。我有一个
修剪(strtolower($text))环绕着我的西里尔语

strtolower:

[这些功能]只有在ISO 8859-1和UTF-8中的常用字符之间进行翻译时才起作用,这意味着它们可以很好地用于西文,但不能用于西里尔文或亚文


谢谢您的帮助。

我也看不到第一个区块上的字符。您确定在UTF-8上编码时在文本编辑器中编写了它们吗?它与数组或数字键完全无关。问题一定发生在其他地方,很可能是数据库连接、头等的字符集错误。输出表明您的数据不是UTF-8编码的。