Принудително кодиране в utf-8 за php страница

Имам VPS (Debian, Apache, MySQL, PHP)

Искам да принудя кодирането в UTF-8. Сложих този ред:

header('Content-type: application/json; charset: UTF-8');

Но наборът от знаци все още е ISO8859

Редактирах също php.ini: /etc/php5/apache2/php.ini

mbstring.language=UTF-8
mbstring.internal_encoding= UTF-8
mbstring.http_input=UTF-8
mbstring.http_output=UTF-8
mbstring.detect_order= auto

и apache conf:

nano /etc/apache2/conf.d/charset
AddDefaultCharset UTF-8

Приложение за iOS извиква моята php страница. И му давам JSON изход. Но получава ISO символи...


person geekInside    schedule 25.05.2012    source източник
comment
Когато казвате, че наборът от знаци все още е ISO8859, какво имате предвид? Къде виждате тази стойност?   -  person Mark Reed    schedule 26.05.2012
comment
Гледам информацията за страницата (десен бутон във Firefox), кодирането е ISO. Имам json изход.   -  person geekInside    schedule 26.05.2012


Отговори (3)


Заглавката на вашия отговор е неправилна:

header('Content-type: application/json; charset: UTF-8');

Трябва да бъде:

header('Content-type: application/json; charset=UTF-8');

Забележете = на мястото на :

person mario    schedule 25.05.2012

Разгледахте ли функцията utf8-encode: http://php.net/manual/en/function.utf8-encode.php ?

Възможно е да повтаряте неправилно кодиран текст на клиента. Apache не прави това вместо вас.

person Pierre    schedule 25.05.2012
comment
Да, но когато гледам информацията за страницата (десен бутон във Firefox), кодирането е ISO - person geekInside; 26.05.2012
comment
Проверихте ли дали имате предупредително съобщение, което може да помогне в конзолата за грешки? - person Pierre; 26.05.2012
comment
о Разбрах го. Заглавката ви е грешна, трябва да имате Content-type: application/json; charset=UTF-8 вместо Content-type: application/json; charset: UTF-8. - person Pierre; 26.05.2012

Във файла .htaccess можете да поставите:

php_value default_charset UTF-8
person Predrag Damnjanović    schedule 20.11.2015