不同语系的转码、编码 -- HttpUtility.UrlEncode,Server.UrlEncode两者差异
http://www.dotblogs.com.tw/mis2000lab/archive/2008/06/11/4268.aspx
多国语系的转码 / UrlEncode。各位可以参考一下微软的范例,
- Encoding.Convert 方法 http://msdn.microsoft.com/zh-tw/library/system.text.encoding.convert(VS.80).aspx
- 使用Unicode 编码方式
名称 |
说明 |
将整个字节数组从一种编码方式(A)转换成另一种编码方式(B)。 受 .NET Compact Framework 支援。 |
-------------------------------------------------------------------------------
以下是微软的范例程序,很有用。(抄起来,就能用)
Imports System
Imports System.Text
Imports Microsoft.VisualBasic
Namespace Convert_Example
Class MyConvertExampleClass
Shared Sub Main()
Dim unicodeString AsString = "This stringcontains the unicode character Pi(" & ChrW(&H03A0) & ")"
' Create two different encodings. ASCII与 Unicode两者互转
Dim ascii As Encoding= Encoding.ASCII
Dim [unicode] AsEncoding = Encoding.Unicode
' Convert the string into a byte[].
Dim unicodeBytes AsByte() = [unicode].GetBytes(unicodeString)
' Perform the conversion from one encoding to the other.这段程序很麻烦,一定要先用Byte型态之后,才能转码!
Dim asciiBytes AsByte() = Encoding.Convert([unicode],ascii, unicodeBytes)
' Convert the new byte[] into a char[] and then intoa string.
' This is a slightly different approach to convertingto illustrate
' the use of GetCharCount/GetChars.
Dim asciiChars(ascii.GetCharCount(asciiBytes, 0,asciiBytes.Length)) As Char
ascii.GetChars(asciiBytes, 0, asciiBytes.Length, asciiChars, 0)
Dim asciiString AsNew String(asciiChars)
' Display the strings created before and after the conversion.
Console.WriteLine("Original string: {0}",unicodeString)
Console.WriteLine("Ascii converted string: {0}",asciiString)
End Sub
End Class
End Namespace
-------------------------------------------------------------------------------
关于HttpUtility.UrlEncode,Server.UrlEncode两者的差异(本文为简体中文)
详见全文:http://bbs.wangqi.com/showtopic-7609.html
1. HttpUtility.UrlEncode 方法:
对 URL 字符串进行编码,以便实现从 Web 服务器到客户端的可靠的 HTTP 传输。
2. Server是HttpServerUtility类的实例,是System.Web.UI.Page的属性。
HttpServerUtility.UrlEncode 方法:
编码字符串,以便通过 URL 从 Web 服务器到客户端进行可靠的 HTTP 传输。
需要注意的几点(两者差异如下):
1、HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法。
2、Server是HttpServerUtility类的实例,是System.Web.UI.Page的属性。
3、用HttpUtility.UrlEncode编码后的字符串和用Server.UrlEncode进行编码后的字符串对象不一样
结 论:
- HttpUtility.UrlEncode是默认的(默认值)按照.net的utf-8格式进行编码的 (微软官方文件,http://msdn.microsoft.com/zh-tw/library/system.web.httputility.urlencode.aspx)
- Server.UrlEncode的编码方式是按照本地程序设置的编码方式进行编码的。(微软官方文件,http://msdn.microsoft.com/zh-tw/library/ms525738(en-us).aspx)
-------------------------------------------------------------------------------
另外有一篇好文章,是给VB.NET使用的 URLEncode。
标题「如何用 VB 或 VB.Net 来撰写 ASP 的 Server.URLencode 函数 (作者:强力榔头)」
另外一篇相关文章,是「黑暗执行绪」写的----【茶包射手专栏】QueryString的中文编码问题
网络上找到的相关文章,转贴_JavaScript的UrlEncode,UrlDecode
-------------------------------------------------------------------------------
....................................................................................................寄信给我 mis2000lab (at)雅虎.com.台湾 ........
ASP.NET案例精编(清华大学出版社 / 作者MIS2000Lab)
http://www.china-pub.com/46063
2009/5/15上市
市场价 :¥59.80 RMB(人民幣)