正在研究一个程序,输入一个关键字,能够把这个关键字发送到Google,yahoo等搜索引擎,进行搜索,然后打开结果网页。原理很简单。比如在Google搜索China,搜索结果页面的URL就是“http://www.google.com/search?hl=zh-CN&q=China&lr=”。只要替换红颜色的内容,就可以按照不同的关键字搜索。
但是如果关键字是中文,就会出现问题。比如在google搜索“中国”,Url是“http://www.google.com/search?hl=zh-CN&newwindow=1&q=中国&lr=”。汉字“中国”被按照UTF-8的格式进行编码。
不仅汉字进行编码,一些特殊字符也会进行编码。比如搜索“C#”,URL是“http://www.google.com/search?hl=zh-CN&newwindow=1&q=C#&lr=”。
一般来说,国外的网站都是按照UTF-8编码,而“百度”是按照“GB2312”进行编码的。比如搜索“中国”,URL是“http://www.baidu.com/s?wd=�й�&cl=3”
我们对比一下:C#中国的编码
编码 结果 网站
UTF-8 C#中国 Google
GB2312 C#�й� BaiDu
总结:
UTF-8中,一个汉字对应三个字节,GB2312中一个汉字占用两个字节。
不论何种编码,字母数字都不编码,特殊符号编码后占用一个字节。
//按照UTF-8进行编码
string tempSearchString1 =
System.Web.HttpUtility.UrlEncode("C#中国");
//按照GB2312进行编码
string tempSearchString2 =
System.Web.HttpUtility.UrlEncode("C#中国",System.Text.Encoding.GetEncoding("GB2312"));
<wbr></wbr>
//--------------------------------------------------------------------------------------------------------------
【转】ASP.NET中c#的URL编码处理
要解决的问题:
将下面的URL作为一个参数传到其他的页面
1 http://domain/de.apx?uid=12&page=15
2 url后面的参数中出现汉字等,如: ....aspx?title=起重机
在出现上面的情况的时候,必须经过一个RUL编码和解码的过程,否则会出现错误.
代码如下:
//传值
string temp = "
添加到收藏夹");
//在另外一个文件中取从上面传的值
if (Request.QueryString["url"] != null)
{
<wbr><wbr><wbr> string url =
Server.UrlDecode(Request.QueryString["url"].ToString());<br><wbr><wbr><wbr>
this.txtAddress.Text = url;<br>
}<br>
if (Request.QueryString["title"] != null)<br>
{<br><wbr><wbr><wbr> string title
= Server.UrlDecode(Request.QueryString["title"].ToString());<br><wbr><wbr><wbr>
this.txtTitle.Text = title;<br>
}</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
//-----------------------------------------------
URL编码对照表
1、string s = System.Web.HttpUtility(byte[] data);
这里的s即为转换出来的URL编码,需要注意的是这里的byte数组必须是具有ASCII意义的数组,由string通过System.Text.Encoding.Default.getBytes(str.ToCharArray());是不正确的,不能正确转义!
2、根据URL编码规则写个小程序
private string UrlEncode(byte[] byt)
<wbr> {<wbr><wbr><br><wbr><wbr><wbr><wbr>
string<wbr> desstr =
"";<wbr><wbr><br><wbr><wbr><wbr><wbr>
for(int i=0; i<br><wbr><wbr><wbr><wbr>
{<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr>
desstr += "%";<wbr><wbr><br><wbr><wbr><wbr><wbr><wbr>
desstr +=
byt[i].ToString("X2");<wbr><wbr><br><wbr><wbr><wbr><wbr>
}<br><wbr><wbr><wbr><wbr>
return desstr;<br><wbr> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
以下是URL编码对照表:
backspace
tab<wbr><wbr><wbr><wbr><wbr><wbr><br>
linefeed<wbr><br>
creturn<wbr><wbr><br>
space<wbr><wbr><wbr><wbr><br>
!<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
!<br>
"<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
"<br>
#<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
#<br>
$<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
$<br>
%<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
%<br>
&<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
&<br>
'<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
'<br>
(<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
(<br>
)<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
)<br>
*<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
*<br>
+<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
+<br>
,<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
,<br>
-<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
-<br>
.<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
.<br>
/<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
/<br>
0<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
0<br>
1<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
1<br>
2<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
2<br>
3<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
3<br>
4<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
4<br>
5<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
5<br>
6<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
6<br>
7<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
7<br>
8<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
8<br>
9<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
9<br>
:<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
:<br>
;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
;<br>
<<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
<<br>
=<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>
=<br>
><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
相关推荐
以下是获取文件编码的一个类: using System; using System.IO; using System.Text; /// /// FileEncoding 的摘要说明 /// namespace FileEncoding { /// /// 获取文件的编码格式 /// public class Encoding...
C#写的 GBK GB2312 UTF-8转换 功能简单,仅供学习
文件的编码格式需要转换,gb2312,utf,utf-8等编码格式的相互转换等
JS GB2312TOUTF8 UTF8TOGB2312 编码转换 /* * GB2312转UTF8 * 例: * var xx=new GB2312UTF8(); * var Utf8=xx.Gb2312ToUtf8("你aaa好aaaaa"); * var Gb2312=xx.Utf8ToGb2312(Utf8); * ...
一个简单的转换工具,对某一个目录中的utf-8文件进行转换;您也可以利用这个原理进行其他编码的转换,例如utf-8到unicode. 注意:使用的是C#自带的字符集转换功能.本人不了解utf-8的等编码原理.
C# 生成xml文件,编码为utf-8方法
URL中包含编码的中文的时候,程序获取queryString需要根据url的不同编码,采用不同的解码方式,RequestQueryString方法能够自动识别url是用UTF-8编码还是GB2312编码,从而自动获取争取的值。 应用范例:...
LabVIEW 自带的VI,可以实现GB2312字符与UTF-8字符互,用在网络字符转换很方便。输入隐藏功能,自己很难找到。
搜集了网上的VBA函数,在excel中通过函数将汉字转为两种类型的URL编码,例如将 天空 二字转化为GB2312的“%CC%EC%BF%D5”或者是UTF-8的 “%E5%A4%A9%E7%A9%BA”。方便用于连接转换。VBA相关函数均来自网上,做了小小...
C#:批量修改文本编码为UTF-8(含源码),可将指定文件夹下的所有是.txt、.cs、.lua后缀的文件(需要更多支持可自行修改)的编码格式修改为UTF-8,VS2013的项目。
嵌入开发语言(c#&java)的基于缓存一致性的分布式事务框架源码嵌入开发语言(c#&java)的基于缓存一致性的分布式事务框架源码嵌入开发语言(c#&java)的基于缓存一致性的分布式事务框架源码嵌入开发语言(c#&java)的基于...
c#写的,在Win2000下调试通过,请确认你有.net的运行平台,先! 谢谢大家多提意见哈。 版权申明: 该软件为自由软件,提供源码,请不要用于任何商业,...
ASCII/GB2312/UTF-8/Unicode编码 字符串与字节转换查看源码。采用Visual Studio 2008开发,使用C# Windows Form编写,代码简单易懂。 输入:CSDN-全球最大中文IT社区。 选择:GB2312 结果:4353444E2DC8ABC7F2D7EEB...
让Silverlight支持GB2312中文编码 Gb2312Encoding encoding = new Gb2312Encoding(); string str1 = encoding.GetString(bytes, 0, bytes.Length);
在《代码重构(C#&ASP.NET版)》中首次提供了在c#和asp.net中进行重构的专业方法,您将学习如何运用重构技术管理和修改代码。此外,还将学习如何从头开始构建原型应用程序,然后利用重构技术将原型转换为正确设计的、...
C# 源代码,把 所有的 cs文件从GB2312 转换成UTF-8. 批量导入转换,输入目录路径既可。
c#分页控件,最快速度的分布控件 public class Pager : WebControl, IPostBackEventHandler, INamingContainer { private string CurrentPageText = "页次:{0}/{1}页 {2}条/页 共{3}条&...
以前写的,C#连接数据库UFT-8转为GB2312格式的demo,希望可以帮助到大家
现今网络应用已经很普及,而对网络方面的编程少不了要用到不同的编码,本程序只是简单的对UTF8及BASE64编码进行简单的剖析,仅供学习参考,若您有更优化的处理办法希望能共同研究一下。程序是用C#编写。我曾用过其它...