今天修改原来的站点,有几个session和cookies乱码问题,然后又好好看了一下关于编码这块的内容。

大概是:登录处,用session记录了一点中文内容。然后cookies也记录了一点中文内容,取出来以后一下session乱码一下cookie乱码

翻代码查了一下代码,在统一设置cookies的时候,使用了 Server.UrlEncode ,但是发现,登录后cookies取出来是乱码,

然后换为 HttpUtility.UrlEncode 则不乱码。

猜测这两个方法默认用的编码格式不一样,后来观察网页发现,登录处竟然是gb2312而首页调用cookies的地方是utf-8 醉了,后来发现是这个文件夹下单独有一个web.config设定了编码,也不知道当初为什么这样子做。。。单独文件夹还设置单独编码。估计是因为拷贝过去没删除。。。。按道理整站不应该是统一一个编码吗?

然后猜想他们默认编码方式不一样后,百度之,如下文章所说,果然是默认编码方式不一,遂改之,然后整改了所有地方单独设置编码的。不再乱码。

一、HttpUtility.UrlEncode 方法

1、public static string UrlEncode(byte[])

将字节数组转换为已编码的 URL 字符串。

2、public static string UrlEncode(string)

对 URL 字符串进行编码。

3、public static string UrlEncode(string, Encoding)

使用指定的编码对象对 URL 字符串进行编码。

4、public static string UrlEncode(byte[], int, int)

从数组中的指定位置开始一直到指定的字节数为止,将字节数组转换为 URL 编码的字符串。

二、Server.UrlEncode方法

1、public string UrlEncode(string)

对字符串进行 URL 编码,并返回已编码的字符串。

2、public void UrlEncode(string, TextWriter)

URL 对字符串进行编码,并将结果输出发送到 TextWriter 输出流。

三、Server.UrlEncode与HttpUtility.UrlEncode的区别

1、HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法。

2、Server是HttpServerUtility类的实例,是System.Web.UI.Page的属性。

3、Server.UrlEncode的编码方式是按照本地程序设置的编码方式进行编码的,而HttpUtility.UrlEncode是默认的按照utf-8格式进行编码的,如果需要指定HttpUtility.UrlEncode的编码方式,则需要:HttpUtility.UrlEncode("学习也休闲", Encoding.GetEncoding("gb2312"));

4、两者都会如下转换字符:空格会被转换为加号、非字母数字字符会被转换为他们的十六进制表现形式。

HttpUtility.UrlEncode 和Server.UrlEncode的区别,记录记录,被乱码搞晕头了。。。。。的更多相关文章

  1. asp.net URL传递中文参数System.Web.HttpUtility.UrlEncode与Server.UrlEncode的区别

    asp.net URL传递中文参数System.Web.HttpUtility.UrlEncode与Server.UrlEncode的区别(一) HttpUtility.UrlEncode 方法: 对 ...

  2. HttpUtility.UrlEncode与Server.UrlEncode()转码区别

    在对URL进行编码时,该用哪一个?这两都使用上有什么区别吗?测试: string file="文件上(传)篇.doc";string Server_UrlEncode=Server ...

  3. HttpUtility.UrlEncode,Server.UrlEncode 的区别

    引用: 1.HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法. 2.Se ...

  4. Server.UrlEncode、HttpUtility.UrlDecode的区别

    Server.UrlEncode.HttpUtility.UrlDecode的区别 在对URL进行编码时,该用哪一个?这两都使用上有什么区别吗? 测试: string file="文件上(传 ...

  5. Server.UrlEncode与HttpUtility.UrlEncode的区别

    一.HttpUtility.UrlEncode 方法 1.public static string UrlEncode(byte[]) 将字节数组转换为已编码的 URL 字符串. 2.public s ...

  6. c#asp.net url 传递中文参数要使用 System.Web.HttpUtility.UrlEncode 而不能使用Server.UrlEncode

    最近网站里的参数包括中文的例如: http://www.taiba/Tag%b0%ae%c7%e9.html 已开始使用 Server.UrlEncode来做的,但发现,有一些中文在url重写的是说找 ...

  7. (转)server.urlencode有什么用?怎么用?

    这个函数主要是为了,不同浏览器的事,如果你传递的参数是中文,有的浏览器就显示出错,如果转换成编码形式,就可以正确传递!当然在IE下2个结果都是一样的,你看不出来区别,用编码来传递参数是一个好习惯,养成 ...

  8. 控制台或Winform程序中如何编码或解码Server.URLEncode

    原文发布时间为:2010-07-10 -- 来源于本人的百度文章 [由搬家工具导入] 在Asp.net中可以使用Server.HTMLEncode和Server.URLEncode 将文本或URL的特 ...

  9. Server.UrlEncode与Server.UrlDecode(url传递中文的解决方案)

    1.设置web.config文件.<system.web> ...... <globalization requestEncoding="gb2312" resp ...

随机推荐

  1. 【HTML5&CSS3进阶学习01】气泡组件的实现

    前言 气泡组件在实际工作中非常普遍,无论是网页中还是app中,比如: 我们这里所谓气泡组件是指列表型气泡组件,这里就其dom实现,css实现,js实现做一个讨论,最后对一些细节点做一些说明,希望对各位 ...

  2. Android 滑动菜单框架--SwipeMenuListView框架完全解析

    SwipeMenuListView(滑动菜单) A swipe menu for ListView.--一个非常好的滑动菜单开源项目. Demo 一.简介 看了挺长时间的自定义View和事件分发,想找 ...

  3. Android 源码解析之AsyncTask

    AsyncTask相信大家都不陌生,它是为了简化异步请求.更新UI操作而诞生的.使用它不仅可以完成我们的网络耗时操作,而且还可以在完成耗时操作后直接的更新我们所需要的UI组件.这使得它在android ...

  4. RunTime&RunLoop初见

    什么是runtime 1> runtime是一套底层的c语言API(包括很多强大实用的c语言类型,c语言函数); 2>实际上,平时我们编写的oc代码,底层都是基于runtime实现的 也就 ...

  5. android 内存溢出与内存泄露

    内存溢出就是软件运行需要的内存,超出了java虚拟机给他分配的可用的最大内存 内存泄露就是在缓存图片文字等等的时候,没有关闭流所导致的内存泄露

  6. [C#6] 5-自动属性增强

    0. 目录 C#6 新增特性目录 1. 老版本代码 internal class Person { public string Name { get; private set; } public in ...

  7. MS SQL专用管理员连接DAC

    在SQL SERVER 2005中,微软引入了一个叫做数据库专用管理员连接方式(DAC Dedicated Administrator Connection)的特性,使用这个新特性,数据库管理员可以在 ...

  8. ARM汇编与C混合编程

    GNU内联汇编 内联汇编即在C中直接使用汇编语句进行编程,使程序可以在C程序中实现C语言不能完成的一些工作,例如,在下面几种情况中必须使用内联汇编或嵌入型汇编 程序中使用饱和算术运算(Saturati ...

  9. Ajax的笔记

    Ajax指异步JavaScript及XML(Asynchronous JavaScipt And XML),是一种异步交互式网页开发技术,用于创建快速动态网页.与服务器进行少量数据交换中,Ajax可以 ...

  10. Linux cut命令

    [root@wang /]# cat /etc/passwd root:x:::root:/root:/bin/bash bin:x:::bin:/bin:/sbin/nologin daemon:x ...