gpt4 book ai didi

PHP -\u00f8 (ø) 变为 u00f8

转载 作者:行者123 更新时间:2023-11-29 19:49:17 26 4
gpt4 key购买 nike

我正在编写一个 WP 插件,它连接到另一个 WP 站点,并获取一些数据作为返回(一些强大的条目,带有名称和其他内容)。

一切都很好,我的插件基本上按预期工作 - 但我今天注意到它有一些奇怪的编码问题 - 我住在北欧国家,所以 ø æ l 在名称中很常见。

过去 2 个小时我一直在调试,但似乎无法找出问题所在。

**Data path:**
End-point -> Plugin - \00f8
Data received - \u00f8
Data saved - u00f8

我使用以下代码接收数据:

$aDataRecevied = json_decode(oaal_CallEndpointAPI('GET',   'xxxxxx.dedi2491.your-server.de/wp-json/oaeu/v1/api', $aDataSend));
$sFrmEntriesRecevied = $aDataRecevied->sData->aFrmEntries;

然后我找到我的自定义 WP 帖子,并将其保存添加/更新到帖子中:

update_post_meta($iPost_ID, "aFrmEntries", json_encode($aFrmEntries), "");

数据库正在运行:InnoDB 和 utf8mb4_unicode_ci,但我非常有信心这不会成为问题(?)

我不太确定这有什么问题,但我希望有人有想法

插件从端点获取的字符串如下所示:

{"64":"H\u00f8jb","65":"Hansen","66":"asd@hotmail.com","date_created":"2016-11-21 13:11:26","form_id":"6"}

编辑

显然,当我将数据保存到数据库时,\被 WP 删除了

最佳答案

所以我明白了!问题是 WP 转义了\u00f8,以使其更安全 - 遗憾的是,这有副作用,\u00f8 将变成 u00f8。

我通过简单地确保在保存数据之前将其转换为 ø æ å 来解决这个问题:

$str = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
}, $str);

感谢:https://stackoverflow.com/a/2934602/7166130

关于PHP -\u00f8 (ø) 变为 u00f8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40861959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com