2009-09-03 122 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地址欄中顯示的文本是這些字符的十六進制版本的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 2009-09-03 18:56:56

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" 
相關問題