Gij*_*des 3 php encoding internet-explorer tinymce utf-8
我目前正在使用TinyMCE作为我的CMS用户的html编辑器.不知何故欧元符号(€)被IE(任何)转换为%u20AC.
经过短暂的搜索,我找到了这个.它为UTF-8欧元符号的不同编码提供了很多,但不是%u20AC,具有百分比图标.
我已经为UTF-8提供了正确的标题,所以我猜IE只是粗鲁地以自己的方式做事......
是否有一个PHP函数可以捕获这个奇怪的编码并将其置于正常的htmlentity(十六进制,十进制或命名).我可以只用string_replace()这个单一的问题符号,但我宁愿立即修复所有可能的冲突.
或者我应该简单地替换%u为&#x禁用%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');;
}
Run Code Online (Sandbox Code Playgroud)
还要检查是否可以为TinyMCE配置此行为.
| 归档时间: |
|
| 查看次数: |
6657 次 |
| 最近记录: |