utf8_encode не дает правильного результата

Моя проблема заключается в следующем:

Я храню массив, который имеет такие ключи, как «e», «f» и т. Д. В какой-то момент мне нужно получить значение ключа. Это хорошо работает. Но если я хочу хранить «і», «é» и т. Д. В качестве ключей, это не приведет к правильному результату (результаты в ). Моя страница должна быть в UTF-8. Выяснив проблему, я узнал, что utf8_encode должен помочь моей проблеме. Этого не произошло: хотя он создал более читаемый персонаж, он все еще полностью отличался от того, что я хочу. Если это важно, phpinfo дает:

Directive Local Value Master Value iconv.input_encoding ISO-8859-1 ISO-8859-1 iconv.internal_encoding ISO-8859-1 ISO-8859-1 iconv.output_encoding ISO-8859-1 ISO-8859-1 

Что может помочь решить проблему?

Изменить : Я думаю, что клавиши массива делают некоторые потери данных. Это правда? Если да, то как предотвратить?

Edit2: Решения, которые я пробовал до сих пор: получить значение ключа массива – не удалось; создать массив с одинаковыми клавишами, но значения utf-8 символов: не удалось; Ошибка utf8_encode; [пытался с обоими] iconv_set_encoding: failed; ini_set не удалось; Ошибка mb_internal_encoding. Все вернулись либо с помощью Ã, либо .

Я собрал несколько решений и, наконец, это работает.

Я сделал следующее: во-первых, я собрал все решения с добавлением этой строки:

 ini_set('default_charset', 'UTF-8'); iconv_set_encoding("input_encoding", "UTF-8"); iconv_set_encoding("internal_encoding", "UTF-8"); iconv_set_encoding("output_encoding", "UTF-8"); mb_internal_encoding("UTF-8"); 

Это не сработало.

Я просмотрел все ссылки, метод utf8_encode – utf8_decode не работал. Затем я взглянул на функции, я нашел mbstring, поэтому я заменил каждую строковую функцию эквивалентом mbstring .

Это отлично работает. Затем я понял, что mb_internal_encoding("UTF-8"); достаточно. Так что теперь это работает. Спасибо за все предложения!

Попробуйте добавить эту строку в начало всех сценариев, которые будут иметь дело с данными UTF-8:

mb_internal_encoding ( "UTF-8");

или даже лучше, отредактируйте внутреннюю кодировку в файле php.ini.

Попробуйте установить директиву default_charset :

 ini_set('default_charset', 'UTF-8'); 

Это устанавливает кодировку символов, которая отправляется в браузер в заголовке Content-Type .