Как отобразить правильный символ из строки UTF-8 в PHP? - PullRequest
2 голосов
/ 30 декабря 2011

У меня есть оригинальный текст: ferhat göçer, и я хочу отобразить его как ferhat göçer. Я много чего перепробовал, но ни одна из них не сработала.

Все страницы имеют следующий заголовок и мета:

header('content-type: text/html; charset=utf-8');
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Я пробовал с iconv, utf8_deconde и всеми другими связками функций, но все еще не повезло.

Как мне отобразить правильный символ для этих странных символов? У меня есть эти данные в базе данных.

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

utf8_decode обычно делает то, что вы хотите, так как содержимое вашей строки - это то, что было дважды кодировано в UTF-8:

var_dump(utf8_decode('ferhat göçer'));

( см. Пример .) Однако это предполагает следующее:

  1. что ваши файлы сохранены в формате UTF-8.
  2. что ваши заголовки обслуживаются правильно.(Проверьте заголовки HTML / HTTP в браузере.)
  3. Что для вашей внутренней кодировки PHP / кодировки по умолчанию задано UTF-8.

Также имейте в виду, что перед любымINSERTs / UPDATEs для базы данных, предотвращение повторного возникновения проблемы может быть выполнено следующим образом:

mysql_query("SET NAMES 'utf8'");
1 голос
/ 30 декабря 2011

Может быть также связано с сервером.Некоторые провайдеры имеют свой apache2, настроенный для принудительного кодирования ISO-XXXX, независимо от того, что вы установили через PHP или в <header> страницы.

edit: Вы можете проверить это, проверив фактические заголовки, которые дает вам загрузка страницы.,Либо с помощью инструментов браузера, таких как Inspect -> Network Panel в Chrome, Firebug, либо с веб-сайта, такого как http://www.webconfs.com/http-header-check.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...