一.在Asp.net的HttpCookie中写入汉字,读取时为乱码 其实这是因为文字编码而造成的,汉字是两个编码,所以才会搞出这么个乱码出来!其实解决的方法很简单:只要在写入Cookie时,先将其用Url编码,然后再写入,当我们读取时再解码就OK了. 例子: Cookie的写入: HttpCookie cookie=new HttpCookie("Simple"); cookie.Values.Add("Simple1",HttpUtility.UrlEncode("中文字符测试!")); cookie.Values.Add("Simple2","The English Charactor Test!"); Response.AppendCookie(cookie); Cookie的读取: HttpCookie cookie=Request.Cookies["Simple"]; string simple1=HttpUtility.UrlDecode(cookie["Simple1"]); string simple2=cookie["Simple2"]; 这样 simple1="中文字符测试!"; simple2="The English Charactor Test!"; 二.地址栏中传递带中文字符的参数 传递参数时先将其进行urlencode编码,然后再赋给URL连接,避免获取中文参数时,取出乱码的问题; 例子: string Text = "地址栏中传递带中文字符的参数" Text = System.Web.HttpUtility.UrlEncode(Text, System.Text.Encoding.GetEncoding("GB2312")); 三.导出EXCEL时与编码相关的问题 ...... 四.把UTF-8编码转换为GB2312编码 最近在做的广告系统中,碰到了一个问题,广告系统采用的UTF-8编码,而一些使用这套广告系统的频道页面使用的是GB2312编码。当然也有使用UTF-8编码的频道使用这套广告系统。 频道页面是通过嵌入类似如下的代码方式,来调用广告的。具体那个时间显示那个广告,或者那些广告组合是广告系统自己处理的。
<
script type
=
"
text/javascript
"
>
<!-- csdn_AD_Position_GroupID = " {f05ff3bf-246b-4d71-a101-b5d4ee3f6cd3} " ; csdn_AD_Page_Url = document.location; // --> </ script > < script type = " text/javascript " src = http://ads.youkuaiyun.com/AD/Show_js_AD.js > </ script > asp.net 中,如果要修改输出页面的编码,可以通过修改web.config中以下配置信息 <globalization requestEncoding="utf-8" responseEncoding="utf-8" /> 以上只是修改整体的默认编码,如果只有某个页的编码需要修改,ASP.net 中则可以简单的使用下面代码: 在非ASP.net 应用中,可能你读到的数据是UTF-8编码,但是你要转换为GB2312编码,则可以参考以下代码: 当然,其他各种编码之间的转换,跟上述代码也类似的,就不描述了。 五.ASP.NET自动识别GB2312与UTF-8编码的文件 http://www.webjx.com 更新日期:2007-10-15 22:27 出处:网页教学网 Question 在简体中文系统中,我们有时候需要打开一个保存在磁盘上的纯文本文件,例如txt,但却不知道其保存编码,该怎么办呢? 如果文本只需要在Windows上显示,那就很幸运了,因为无论是GB2312还是UTF-8编码的string都能够正确显示。但如果需要输出到ASP.NET页面上就不是那么简单了,因为如果页面编码为UTF-8但纯文本文件导入的string是GB2312,那就会导致乱码,反之亦然。因此,我们需要一种方法自动识别磁盘上的纯文本文件到底是么编码的。 Answer StreamReader其实是有编码自动检测功能,不过因为它仅仅检测前3个字节,所以只能UTF-8、Little-Endian Unicode、Big-Endian Unicode之前作出选择,如果上述3个都不匹配,就选择用户提供的编码。因此,我们可以提供GB2312编码给StreamReader,让它在GB2312和UTF-8之前自动作出选择。
using
(StreamReader reader
=
new
StreamReader(path, Encoding.Default)
{ string line; while ((line = reader.ReadLine()) != null ) { FileTextBox.InnerHtml += Server.HtmlEncode(line) + " " ; } FileEncodingNameLabel.Text = reader.CurrentEncoding.EncodingName; }
|