gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 00:49:49 24 4
gpt4 key购买 nike

我目前正在使用 TinyMCE 作为我的 CMS 用户的 html 编辑器。IE(任何)以某种方式将欧元符号 (€) 转换为 %u20AC。

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

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

是否有一个 PHP 函数可以捕获这种奇怪的编码并将其放入普通的 htmlentity(十六进制、十进制或命名)。我可以只string_replace() 这个单一的问题符号,但我宁愿一次解决所有可能的冲突。

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

最佳答案

%u20AC 的 Unicode 编码数据,由 JavaScript escape() 函数生成<支持> MDN , ECMA262 为服务器端处理的 UTF8。

标准 PHP urldecode()无法处理(是非标准的百分比编码 WP ),所以需要使用扩展例程:

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

同时检查您是否可以为您的 TinyMCE 配置此行为。


引用资料

关于php - 使用 Internet Explorer %u20AC 到 € 的 UTF-8 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10042465/

24 4 0