web.config 里,有下面的设置。
<!-- 全球化
此节设置应用程序的全球化设置。
-->
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>在什么情况下,需要修改"utf-8" 为 "gb2312" 呢?
requestEncoding 是请求,responseEncoding 是输出,这个我知道,谁可以讲的深入些?并举几个例子。
谢谢
<!-- 全球化
此节设置应用程序的全球化设置。
-->
<globalization
requestEncoding="utf-8"
responseEncoding="utf-8"
/>在什么情况下,需要修改"utf-8" 为 "gb2312" 呢?
requestEncoding 是请求,responseEncoding 是输出,这个我知道,谁可以讲的深入些?并举几个例子。
谢谢
解决方案 »
- 用户控件缓存问题 出现未将对象初始化
- winform下弹出窗体!着急呀!揭帖就给分
- 关于server.mappath()的问题
- 窗口问题
- 为什么在datagrid前台数据绑定时不能用if语句呢?在线等,谢谢!
- DataGrid中FindControl的问题
- 帮我设计一下主页实现方式
- 需求这样的教程(技术文章)
- 本人的.NET2005群!欢迎对NET感兴趣的各界高手加入!31219549
- Datalist-ItemTemplate etc. -VS.NET 问题
- 当页面正在对数据库操作时,如何屏蔽整个页面让用户不能进行任何操作,等数据库操作完毕时自己激活页面?
- 怎么实现在A页面中保存COOKIES然后指向B页面??????
utf-8是国际上通用的字符集,里面包括很多国家的字符
gb2312是中国的,只有中文字符
所以,如果在鬼子那儿看gb2312的网站应该是显示乱码,而utf-8在世界各地都会原样显示,因为对于字符的定义没有重复
只是好像记得啊,错了别砸我
requestEncoding="utf-8"
responseEncoding="utf-8"
/>requestEncoding对应到Request.Encoding属性,用于告诉Request使用什么编码对提交的数据进行解码,就是诸如%38%2d%ge等的QueryString。
responseEncoding对应到Response.Encoding属性,用于指定Response输出页面时采用的默认编码,就是指你在浏览器上按右键选择哪种编码可以正常看页面。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web> <!-- 动态调试编译
设置 compilation debug="true" 以将调试符号(.pdb 信息)
插入到编译页中。因为这将创建执行起来
较慢的大文件,所以应该只在调试时将该值设置为 true,而所有其他时候都设置为
false。有关更多信息,请参考有关
调试 ASP.NET 文件的文档。
-->
<compilation defaultLanguage="vb" debug="true" /> <!-- 自定义错误信息
设置 customErrors mode="On" 或 "RemoteOnly" 以启用自定义错误信息,或设置为 "Off" 以禁用自定义错误信息。
为每个要处理的错误添加 <error> 标记。
-->
<customErrors mode="RemoteOnly" /> <!-- 身份验证
此节设置应用程序的身份验证策略。可能的模式是“Windows”、
“Forms”、“Passport”和“None”
-->
<authentication mode="Windows" />
<!-- 授权
此节设置应用程序的授权策略。可以允许或拒绝用户或角色访问
应用程序资源。通配符:"*" 表示任何人,"?" 表示匿名
(未授权的)用户。
-->
<authorization>
<allow users="*" /> <!-- 允许所有用户 --> <!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization> <!-- 应用程序级别跟踪记录
应用程序级别跟踪在应用程序内为每一页启用跟踪日志输出。
设置 trace enabled="true" 以启用应用程序跟踪记录。如果 pageOutput="true",则
跟踪信息将显示在每一页的底部。否则,可以通过从 Web 应用程序
根浏览 "trace.axd" 页来查看
应用程序跟踪日志。
-->
<trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />
<!-- 会话状态设置
默认情况下,ASP.NET 使用 cookie 标识哪些请求属于特定的会话。
如果 cookie 不可用,则可以通过将会话标识符添加到 URL 来跟踪会话。
若要禁用 cookie,请设置 sessionState cookieless="true"。
-->
<sessionState
mode="InProc"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=127.0.0.1;user id=sa;password="
cookieless="false"
timeout="20"
/> <!-- 全球化
此节设置应用程序的全球化设置。
-->
<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
</system.web></configuration>
GB2312字符集
如果像ISO8859系列一样,大于0x7F的字符用来表示汉字,则最多表示128个,这显然不够,于是就有了GB2312标准所产生的字符集,如果当前字节(8 bit)小于0X80,则仍当它为英文字符;如果它大于等于0x80,则它和紧接着它的下一个字节构成一个汉字字符,这样,GB2312字符集可包含大约4000多个常用简体汉字和其他汉字中的特殊符号(如①㈠之类)。其他类似的汉字字符集还有GBK(GB2312的扩展),GB18030,Big5(繁,台湾省用),详细规范介绍可参考:http://www.unihan.com.cn/cjk/ana17.htm
Unicode字符集
Unicode字符最初是16位的(出于需要,后来增加了代用对),它和7位的US-ASCII保持兼容,MS的Windows NT/2000/XP和Sun的Java都用它作为默认的字符集,它最初是美国商务联盟的事实上的标准,它遵循国际通用字符(UCS)集标准:ISO/IEC 10646。Unicode的主要目标是提供一个“通用字符集”,这个通用字符集包括世界上所有的语言,字母和文字,所以在Unicode字符集中。毕竟16位的Unicode字符集最多只有216= 65536个字符,还不足以在实际应用中表示所有的字符,而且在以英文为主要信息的互联网时代,它的使用、存储与传输,都极其浪费空间,所以在此基础上出现了UTF-8(Unicode Transformation Form 8-bit form)和UTF-16这两种对Unicode字符编码的规范,在UTF-8中,属于US-ASCII中的字符,仍用一个字节表示,且和US-ASCII兼容,编码其他的字符,则用1(大于0x7F部分)到3个字节。UTF-8的变长性和复杂性,对非ASCII的字符,就不大友好了,也开始违背了Unicode的初衷。而UTF-16则是很简单的编码方式,它完全遵循Unicode标准,用16位的定长空间来表示部分Unicode字符集。关于Unicode的更多规范,请访问Unicode联盟站点:
http://www.unicode.org,UTF-8和UTF-16分别定义在IETF的RFC 2279和RFC 2781中,可以通过http://www.ietf.org/rfc2279.txt或http://www.ietf.org/rfc2781.txt访问它们。
responseEncoding对应到Response.Encoding属性,用于指定Response输出页面时采用的默认编码,就是指你在浏览器上按右键选择哪种编码可以正常看页面。
就是这种解释!
需要使用中文的时候就需要修改成gb2312
responseEncoding对应到Response.Encoding属性,用于指定Response输出页面时采用的默认编码,就是指你在浏览器上按右键选择哪种编码可以正常看页面。解释得不错!
用Utf-8时:QueryString有些时候传中文值不能正常传出
这个能说明白什么时候正常?什么时候不正常么???