惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
雷峰网
雷峰网
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
爱范儿
爱范儿
小众软件
小众软件
K
Kaspersky official blog
P
Proofpoint News Feed
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - Franky
V
Vulnerabilities – Threatpost
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
C
Cybersecurity and Infrastructure Security Agency CISA
V
V2EX
C
Check Point Blog
S
Schneier on Security
P
Palo Alto Networks Blog
IT之家
IT之家
GbyAI
GbyAI
T
Threat Research - Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Apple Machine Learning Research
Apple Machine Learning Research
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tailwind CSS Blog
Project Zero
Project Zero
Y
Y Combinator Blog
V
Visual Studio Blog
Simon Willison's Weblog
Simon Willison's Weblog
T
Threatpost
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
S
Securelist
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
M
MIT News - Artificial intelligence
人人都是产品经理
人人都是产品经理

博客园 - ymz

C#异常的一些使用原则 【转】[翻译]Visual Studio2008的新功能:代码度量 【转】也谈c#调用C++的DLL找不到入口点 Develope express学习 【摘】异源数据转换与FDO数据访问 线程同步 线程异步 【转】ArcEngine中创建自定义工具 【转贴】利用 Javascript 获取 URL 参数(适合IE、FF) - ymz 【转】HTML标签大全 MapGuide常见错误解决方法 集合类及泛型 一个网站系统的经验 frameset学习摘录 【转】如何使用.NET配置文件by沐枫小筑 【转】Notes on the Eclipse Plug-in Architecture 【转】理解session机制 【转】Sys.WebForms.PageRequestManagerParserErrorException - what it is and how to avoid it 【转】获取GridView单元格值的通用函数
困扰了一天的字符集转换问题
ymz · 2008-08-15 · via 博客园 - ymz

     由于主要在后台编码,ASP.NET默认用的UTF-8字符集。当时也没怎么注意这个问题,只是看到网页上有乱码的时候才想起来是字符集设置有问题。

     可是昨天做网页测试的时候发现用URL传参有乱码,在网上搜了下,最后在Web.config里configuration-》system.web下,加了一行全局字符集的设置<globalization requestEncoding="gb2312" responseEncoding="gb2312"></globalization>。这样传参乱码的问题解决啦,可是又出现新问题:以前都可以用的GridView排序功能会报错。当时很奇怪,跟踪了一下发现列名为英文名的可以用,而中文名在获取排序列的参数e.SortExpression时是乱码。看来system.web里的设置是行不通了。

      在网上看一个网友写的博客上说,自己在做网站的时候,由于美工在前台用的是GB2312而后台程序员用的是ASP.NET默认的UTF-8字符集,结果在最后整合的时候很费周折。其中他提到了尝试使用两个config文件(前台一个后台一个),然后就像上面一样,在globalization节对requestEncoding和responseEncoding的字符集编码分别设置。虽然觉得绕的有点头晕,但觉得是一个不错的解决方法,可惜网友告诉我他失败了~最后他还是所有前台的字符集改成了UTF-8。

      可我遇到了比这更麻烦的事,我前台本来就是设置的UTF-8编码,后来在javascript中都加了这么一句<script type="text/javascript" charset="UTF-8">,可还是没办法乱码还是乱码~

      无法,开始转向其它方法,由于对javascript颇有偏见,刚开始从后台着手。看到有人用HttpUtility.ParseQueryString,那我也用吧。

Code

 结果还是乱码。。 当时很无奈:难道javascript字符集不是UTF-8,也不是GB2312,那是什么?GBK?uicode?

      也看到有人说用UrlEncode和UrlDecode,那么UrlEncode就应该在前台javascript里实现了,无奈我对javascript感觉不好,试了一两次不行就放弃了。心想总不会就只有着一种方法吧。

      然后看到javascript在内部也是实现了UrlEncode的,只是叫法不一样(encodeURIComponent)。一时如获至宝,放在我处理的参数串中,结果又失败了。。系统提示我的URL地址“不是有效的虚拟路径”。查了下,微软的解释是URL地址里存在冒号还有什么我记不清了~奇怪,为什么编码出现这样的问题?不得其解就只好老老实实的对每一个传递参数的汉字部分分别给加了个encodeURIComponent,问题解决!

      忘记说了,前面还遇到因为字符集而出现的一个更诡异的问题:我的一个DropDownList明明添加了六七项数据,可第一项和第二项的index没问题,但选取后面几项时index还是0。。。     

       PS:折腾了这么长时间,竟然就只是因为字符集的问题,以后得小心