2009-09-03 118 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" 
相关问题