У меня есть строка, которая находится в моей базе данных, например 中华武魂
, когда я публикую свой запрос на получение данных через мой веб-сайт, я получаю данные на сервер в формате %E4%B8%AD%E5%8D%8E%E6%AD%A6%E9%AD%82
* 1004Какие шаги по расшифровке я должен предпринять, чтобы вернуть его в форму?В то же время очищает ввод данных пользователем, чтобы убедиться, что они не попытаются выполнить инъекцию SQL?(escape-строка до или после кодирования?)
EDIT:
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 (таким образом, я предполагаю, что это читалось мне как латиница)
Спасибо за помощь!