2013-04-23 2 views
2

echo $name дает мне Mount Kimbie — Carbonated.Декодирование символов в строке

Как я могу получить Mount Kimbie — Carbonated?

& mdash, цитаты и другие материалы должны быть декодированы в обычные символы.

Я пробовал оба htmlspecialchars_decode($name) и html_entity_decode($name), они не работают.

+0

$ name = html_entity_decode ($ name); – Shin

+0

'var_dump (get_html_translation_table (HTML_ENTITIES, ENT_QUOTES | ENT_HTML5));' Попробуйте это и посмотрите, находится ли 'mdash' внутри. –

+0

'html_entity_decode ($ name)', кажется, работает отлично http://ideone.com/Wkjvkm – Savv

ответ

10

Вы, вероятно, не хватает параметр кодировки:

html_entity_decode($name, 0, "UTF-8"); 

В зависимости от Предполагалась версия PHP, латинская-1, которая не содержит mdash.

+0

РАБОТЫ, СПАСИБО @mario – Mark

+0

А, я всегда забываю об этом. Используется для UTF-8 по умолчанию на некоторое время: P +1 – MatthewMcGovern

0

html_entity_decode() подходит для меня? Редактировать: Это использует вашу версию PHP по умолчанию, которая для меня UTF-8. Ваш умолчанию используется кодировка может не поддерживать —

Обратите внимание, что она возвращает строку и не изменять саму строку так попробовать:

$name = html_entity_decode($name); 
echo $name; 
+0

Вы уверены, что это работает? Если вы посмотрите на источник страницы, где вы 'echo $ name', вы получите' — ', а не' -' – Mark

+0

Мне нужно получить дезинфицированную строку с декодированными объектами html. – Mark

+0

Я запускал 'echo html_entity_decode (« Mount Kimbie — Carbonated. »);' На моем сервере, и я получаю 'Mount Kimbie - Carbonated.' в моем источнике страницы. – MatthewMcGovern

Смежные вопросы