在我的 ASP.NET MVC 应用程序中,我使用的是中文类别名称,它显示为%E8%82%B2%E5%84%BF
IE 的 URL 地址,但实际值为“育儿”。
我想知道如何将“育儿”转换%E8%82%B2%E5%84%BF
为 C# 以及如何将其转换回来。是否可以直接在网址链接中显示“育儿”?对SEO有好处吗?
在我的 ASP.NET MVC 应用程序中,我使用的是中文类别名称,它显示为%E8%82%B2%E5%84%BF
IE 的 URL 地址,但实际值为“育儿”。
我想知道如何将“育儿”转换%E8%82%B2%E5%84%BF
为 C# 以及如何将其转换回来。是否可以直接在网址链接中显示“育儿”?对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 编码。
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 编码(而不是默认编码)?默认编码不会处理中文字符。