開発中、バックエンドに中国語のパラメータを渡す必要があることが多いのですが、GETでパラメータを渡すと中国語の文字化けが発生することがあります。この記事では、中国語の文字化けを回避し、データの整合性を確保する方法を紹介します。
GET メソッドでパラメータを渡す場合、通常は URL パラメータの形式でパラメータを渡します。例:
http://example.com?name=张三&age=18
ただし、パラメータに漢字が含まれる場合、文字化けが発生する場合があります。例:
http://example.com?name=%D5%C5%BB%F9&age=18
これは、中国語の文字が URL エンコード形式に変換され、バックエンドがエンコードされた文字列を正しく処理できず、文字化けが発生するためです。
2.1. urlencode() 関数
PHP には、URL を取得するために使用される urlencode() 関数が用意されています。中国語の文字を含む文字列をエンコードします。 urlencode() 関数を使用してパラメータをエンコードできます。例:
$name = urlencode('张三'); $age = 18; $url = "http://example.com?name=$name&age=$age";
URL にアクセスすると、URL は自動的にデコードされ、中国語の文字化けの問題を回避するためにパラメータが正しく渡されます。
2.2. urldecode() 関数
バックエンドがエンコードされたパラメーターを受信すると、urldecode() 関数を使用してエンコードされた文字列をデコードする必要があります (例:
$name = urldecode($_GET['name']); $age = $_GET['age'];# #) #2.3. rawurlencode() 関数 さらに、PHP は、RFC 3986 に従って中国語の文字を含む文字列を URL エンコードするために使用される rawurlencode() 関数も提供します。 GET を使用して中国語パラメータを渡す場合、中国語の文字化けを避けるために rawurlencode() 関数を使用することをお勧めします。
以上がPHP getでパラメータを渡すときに中国語の文字化けを回避するにはどうすればよいですか?手法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。