我的数据库中有一个字符串,例如中华武魂
当我发布通过我的网站检索数据的请求时,我以格式将数据发送到服务器%E4%B8%AD%E5%8D%8E%E6%AD%A6%E9%AD%82
我必须采取哪些解码步骤才能将其恢复为可用形式?同时清理用户输入以确保他们不会尝试 SQL 注入攻击?(编码之前或之后的转义字符串?)
编辑:
rawurldecode(); // returns "ä¸åŽæ¦é‚"
urldecode(); // returns "ä¸åŽæ¦é‚"
public 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');
}
// returns "ä¸åŽæ¦é‚"
...当我尝试在 SQL 语句中使用它时,它实际上有效。
我想是因为我在做一个echo
并且die();
没有指定 UTF-8 的标头(因此我猜这对我来说是拉丁语)
谢谢您的帮助!