解码 UTF-8 转义字符串

问题描述 投票:0回答:1

我在互联网上搜索了针对我的具体问题的解决方案,但无济于事。

我正在尝试解码以下字符串:

\x3cdiv\x3e\x3cdiv style\x3d\x22padding-bottom:12px;padding-top:0px\x22 class\x3d\x22hwc kCrYT\x22\x3e\x3cdiv class\x3d\x22yStFkb\x22\x3e\x3cdiv class\x3d\x22Gx5Zad xpd EtOod pkphOe\x22\x3e\x3cdiv class\x3d\x22kCrYT\x22\x3e\x3cdiv\x3e\x3cdiv class\x3d\x22BNeawe s3v9rd AP7Wnd\x22\x3e\x3cdiv\x3e\x3cdiv class\x3d\x22BNeawe s3v9rd AP7Wnd\x22\x3eLG Optimus One P500 price in India starts from \x3cspan class\x3d\x22FCUp0c rQMQod\x22\x3e\u20b95,299\x3c/span\x3e.\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d\x22x54gtf\x22\x3e\x3c/div\x3e\x3cdiv class\x3d\x22kCrYT\x22\x3e\x3ca href\x3d\x22/url?q\x3dhttps://www.smartprix.com/mobiles/lg-optimus-one-p500-p133\x26amp;sa\x3dU\x26amp;ved\x3d2ahUKEwiXhre6zdCCAxUrkmoFHcPEARoQFnoECAMQBg\x26amp;usg\x3dAOvVaw2IXtrxhIz2KypXQY1-VkOj\x22 data-ved\x3d\x222ahUKEwiXhre6zdCCAxUrkmoFHcPEARoQFnoECAMQBg\x22\x3e\x3cspan\x3e\x3cdiv class\x3d\x22BNeawe vvjwJb AP7Wnd UwRFLe\x22 style\x3d\x22-webkit-line-clamp:2\x22\x3e\x3cspan class\x3d\x22rQMQod Xb5VRe\x22\x3eLG Optimus One P500 Price in India 2023, Full Specs \x26amp; Review | Smartprix\x3c/span\x3e\x3c/div\x3e\x3c/span\x3e\x3cspan\x3e\x3cdiv class\x3d\x22BNeawe UPmit AP7Wnd UwRFLe\x22 style\x3d\x22-webkit-line-clamp:2\x22\x3ewww.smartprix.com \u203a mobiles \u203a lg-opti...\x3c/div\x3e\x3c/span\x3e\x3c/a\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv\x3e\x3cdiv class\x3d\x22P1NWSe\x22\x3e\x3cdiv class\x3d\x22wOMIed nkPlDb\x22\x3e\x3cspan class\x3d\x22JhFlyf VQFmSd\x22\x3e\x3ca class\x3d\x22f4J0H\x22 href\x3d\x22https://www.google.com/search?sca_esv\x3d583654954\x26amp;sxsrf\x3dAM9HkKmiEu1JuU2lrgOfiWibXbICyQENmA:1700415524431\x26amp;ei\x3dJEhaZZfkGaukqtsPw4mH0AE\x26amp;q\x3dWhat+is+the+price+of+LG+P500?\x26amp;sa\x3dX\x26amp;ved\x3d2ahUKEwiXhre6zdCCAxUrkmoFHcPEARoQzmd6BAgDEAc\x22 data-ved\x3d\x222ahUKEwiXhre6zdCCAxUrkmoFHcPEARoQzmd6BAgDEAc\x22\x3eMore results\x3c/a\x3e\x3c/span\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e

使用

stripcslashes
可以完成这项工作,但
符号未正确解码。

另一个更简洁的例子是这样的:

320\xd7480

它应该解码为

320×480
,但返回
320�480

有什么建议吗?

php utf-8
1个回答
0
投票

这是我修复它的方法

这取代了

\x00
\u0000
字符。我相信这些是 utf-16 或者什么?不知道。

$answer =
    preg_replace_callback(
        '/\\\u[A-f0-9]{4}|\\\x[A-f0-9]{2}/',
        function($match){

            if($match[0][1] == "u"){
                            
                return json_decode('"' . $match[0] . '"');
            }else{
                            
                return mb_convert_encoding(
                    stripcslashes($match[0]),
                    "utf-8",
                    "windows-1252"
                );
            }
        },
        $accdefs_regex[2][$i]
    );
© www.soinside.com 2019 - 2024. All rights reserved.