2009-09-03 20 views
2

私のASP.NET MVCアプリケーションでは、中国のカテゴリ名を使用していますが、IEのURLアドレスに%E8%82%B2%E5%84%BFと表示されましたが、実際の値は「育てます。C#のエンコードとデコードの「中国語」の文字

C#で '育てる'を%E8%82%B2%E5%84%BFに変換する方法を知りたいのですが、どうすれば元に戻すこともできます。 URLリンクに直接「育てる」を表示することは可能ですか?それはSEOのために良いでしょうか?

答えて

6

IEのアドレスバーに表示されるテキストは、それらの文字の16進版のURLエンコード形式です。 UTF-8でエンコード '育儿' の六角バージョンがE882B2E584BFれる:

byte[] buffer = new byte[] { 0xE8, 0x82, 0xB2, 0xE5, 0x84, 0xBF }; 
string s = Encoding.UTF8.GetString(buffer); 

s 'は育儿' に等しいです。

URLにストレート漢字を送信しないでください。HttpServerUtility.UrlEncodeUrlDecodeを使用してURLをエンコードする必要があります。

0

(既定値ではなく)Unicodeエンコードを使用していることを確認しましたか?デフォルトのエンコーディングは中国語文字を処理しません。

+0

あなたは親切に私に例を与えることはできますか? – CodeYun

1

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" 
関連する問題