php – UTF-8使用Internet Explorer%u20AC编码到€

我目前正在使用TinyMCE作为我的CMS用户的html编辑器.
不知何故欧元符号(€)被IE(任何)转换为%u20AC.

经过短暂的搜索,我找到了this.它为UTF-8欧元符号的不同编码提供了很多,但不是%u20AC,百分比图标.

我已经为UTF-8提供了正确的标题,所以我猜IE只是粗鲁地以自己的方式做事……

是否有一个PHP函数可以捕获这个奇怪的编码并将其置于正常的htmlentity(十六进制,十进制或命名).我可以只是string_replace()这个单一的问题符号,但我宁愿一次修复所有可能的冲突.

或者我应该简单地用& #x替换%u禁用%u的正常使用?

解决方法:

%u20AC是€的Unicode编码数据,由JavaScript的escape()函数生成,用于服务器端处理的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配置此行为.

上一篇:jail brak 获取当前安装app列表


下一篇:javascript-tinyMce在第二次访问角度局部视图时未初始化