在我的ASP.NET MVC應用程序中,我使用中文類別名稱,它在IE的URL地址中顯示爲%E8%82%B2%E5%84%BF
,但實際值爲'育兒'。如何使用C#編碼和解碼'中文'字符
我想知道如何在C#中將'育兒'轉換爲%E8%82%B2%E5%84%BF
,並且如何將其轉換回來。是否可以直接在URL鏈接中顯示「育兒」?它會對SEO有好處嗎?
在我的ASP.NET MVC應用程序中,我使用中文類別名稱,它在IE的URL地址中顯示爲%E8%82%B2%E5%84%BF
,但實際值爲'育兒'。如何使用C#編碼和解碼'中文'字符
我想知道如何在C#中將'育兒'轉換爲%E8%82%B2%E5%84%BF
,並且如何將其轉換回來。是否可以直接在URL鏈接中顯示「育兒」?它會對SEO有好處嗎?
IE地址欄中顯示的文本是這些字符的十六進制版本的URL編碼形式。以UTF-8編碼的「育兒」的十六進制版本是E882B2E584BF:
byte[] buffer = new byte[] { 0xE8, 0x82, 0xB2, 0xE5, 0x84, 0xBF };
string s = Encoding.UTF8.GetString(buffer);
s等於'育兒'。
你不應該傳遞的URL直中國文字,應該是使用HttpServerUtility.UrlEncode和UrlDecode URL編碼。
您是否檢查過以確保您使用的是Unicode編碼(而不是默認值)?默認編碼不會處理中文字符。
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"
你能請給我一個例子嗎? – CodeYun 2009-09-03 18:56:56