JSでエンコードされたクエリがあります
query = encodeURIComponent(query);
//also tried encodeURI(query); with the same result
var request = $.ajax(
{
type: 'GET',
url: 'add-reciepe.php',
data: query
}
)
PHP 側では、urldecode(); でエンコードしたいと考えています。
$query = $_SERVER['QUERY_STRING'];
$query = urldecode($query);
parse_str($query, $out);
ただし、$query (urldecoded 文字列) の出力は入力とまったく同じです (たとえば、cocktail-type=Cocktailtyp+w%C3%A4hlen)。
奇妙なことに、「Cocktailtyp+w%C3%A4hlen」をデータベースに書き込むと、データベース内のテキストは次のようになります。Cocktailtyp wählen
mb_internal_encoding('UTF-8'); が設定されています。
PHPでクエリ文字列をデコードする方法や、私の問題がどこにあるのか、誰かが知っていますか?