私のASP.NETMVCアプリケーションでは、中国語のカテゴリ名を使用しており%E8%82%B2%E5%84%BF
、IEのURLアドレスと同じように表示されていましたが、実際の値は「育儿」です。
%E8%82%B2%E5%84%BF
'育儿'をC#で変換する方法と、それを元に戻す方法も知りたいです。URLリンクに「育儿」を直接表示することはできますか?それはSEOに良いでしょうか?
私のASP.NETMVCアプリケーションでは、中国語のカテゴリ名を使用しており%E8%82%B2%E5%84%BF
、IEのURLアドレスと同じように表示されていましたが、実際の値は「育儿」です。
%E8%82%B2%E5%84%BF
'育儿'をC#で変換する方法と、それを元に戻す方法も知りたいです。URLリンクに「育儿」を直接表示することはできますか?それはSEOに良いでしょうか?
IEのアドレスバーに表示されるテキストは、これらの文字の16進バージョンのURLエンコード形式です。UTF-8でエンコードされた「育儿」の16進バージョンはE882B2E584BFです。
byte[] buffer = new byte[] { 0xE8, 0x82, 0xB2, 0xE5, 0x84, 0xBF };
string s = Encoding.UTF8.GetString(buffer);
sは「育儿」と同じです。
URLでまっすぐな漢字を送信しないでください。HttpServerUtility.UrlEncodeとUrlDecodeを使用してURLエンコードする必要があります。
HttpUtility.UrlEncodeはURLをエンコードし、HttpUtility.UrlDecodeはそれを元に戻します。
例:
string orig = "http://example.com/育儿";
string encoded = HttpUtility.UrlEncode(orig);
// encoded should equal "http://example.com/%E8%82%B2%E5%84%BF"
(デフォルトではなく)Unicodeエンコーディングを使用していることを確認しましたか?デフォルトのエンコーディングは漢字を処理しません。