В настоящее время я использую 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. Попробуйте использовать этот код €