Кодировка UTF-8 с интернет-исследователем% u20AC to & euro;

В настоящее время я использую TinyMCE в качестве редактора html для пользователей моей CMS. Так или иначе символ евро (€) преобразуется в% u20AC IE (любой).

После короткого поиска я нашел это . Это дает много для разных кодировок для символа евро UTF-8, но не% u20AC, с иконкой процента.

Я дал правильные заголовки для UTF-8, поэтому я считаю, что IE просто грубо делает все по-своему …

Есть ли функция PHP, которая может поймать эту странную кодировку и поместить ее в обычное htmlentity (шестнадцатеричное, десятичное или именованное). Я мог бы просто string_replace() этот единственный символ проблемы, но я бы предпочел исправить все возможные конфликты сразу.

Или я должен просто заменить %u на &#x отключение обычного использования% u?

%u20AC – данные в кодировке Unicode для которые генерируются функцией escape() JavaScript для UTF8 для обработки на стороне сервера.

Стандартный PHP-код urldecode не может справиться с этим, поэтому вам нужно использовать расширенную процедуру:

 /** * @param string $str unicode and ulrencoded string * @return string decoded string */ function utf8_urldecode($str) { $str = preg_replace("/%u([0-9a-f]{3,4})/i","&#x\\1;",urldecode($str)); return html_entity_decode($str,null,'UTF-8');; } 

Также проверьте, можете ли вы настроить это поведение для своего TinyMCE.

20AC это код HEX в евро, поэтому вы можете решить эту проблему легко только в своем html-файле вместо usign. Попробуйте использовать этот код €