本配置节是关于配置应用程序的全球化设置。 html
<globalization <!--如下两个特性默认编码为 UTF-8,该编码在 Machine.config 文件(在安装 .NET Framework 时建立)的 globalization 节中指定。 若是在 Machine.config 或 Web.config 文件中未指定响应编码,则编码默认为计算机的"区域选项"区域设置。 在单服务器应用程序中,此特性和responseEncoding 特性应该相同。 对于不常见的状况(默认服务器编码不一样的多服务器应用程序),可使用本地 Web.config 文件改变请求和响应编码。 --> <!--指定每一传入请求的假定的编码,包括已传递的数据和查询字符串。若是请求附带包含一个 Accept-Charset 特性的请求标头,它将重写配置中的该特性。--> requestEncoding="any valid encoding string" <!--指定响应的内容编码。--> responseEncoding="any valid encoding string" fileEncoding="any valid encoding string" responseHeaderEncoding = "any valid encoding string" resourceProviderFactoryType = string <!--目前不使用此特性--> enableClientBasedCulture="true|false" enableBestFitResponseEncoding = "true|false" <!--如下两个特性的内容可参见System.Globalization.CultureInfo,一般状况下中国简体是"zh-ch", JA-JP EN-US 日语和英语 (美国)--> <!--为处理传入的 Web 请求指定默认的区域性。此特性还能够设置为 auto。--> culture="any valid culture string" <!--为处理依赖于区域设置的资源搜索指定默认的区域性。此特性还能够设置为 auto。--> uiCulture="any valid culture string"/>
例如以下设置 jquery
<globalization requestEncoding="iso-8859-1" responseEncoding="iso-8859-1"/>
请求时出现中文(字符编码不对),则会出现乱码,一样响应的页面中的中文也会出现乱码,正常配置时以下图所示 编程
设置了响应编码为iso-8859-1或其余诸如此类ASCII让中文显示乱码的编码,则会出现 服务器
其响应的内容均使用了iso-8859-1而使得中文不能正常显示。 ide
倘若使用了UNICODE做为响应编码,中文能正常显示,可是js有报错,jquery的脚本出现乱码。 ui
另外在特性中有两个特性——uiCulture和resourceProviderFactoryType 是和资源相关的,即*.resx这部分的内容,实际上资源并不局限于*.resx,这个能够参考蒋金楠老师的博文。uiCulture是指定ui界面的区域语言。resourceProviderFactoryType则是指定自定义的资源提供者工厂类的彻底限定名。例如 编码
<globalization uiCulture="zh-CN" resourceProviderFactoryType="FastDoge.Bussiness.MyResourceProviderFactory, FastDoge.Bussiness"/>
这个类FastDoge.Bussiness.MyResourceProviderFactory继承抽象类ResourceProviderFactory。重写两个方法 spa
public override IResourceProvider CreateGlobalResourceProvider(string classKey); public override IResourceProvider CreateLocalResourceProvider(string virtualPath);
两个方法区别在于前者是用的是全局资源的ResourceProvider,然后者是对于每一个页面自带的资源的ResourceProvider。 3d
构造的ResourceProvider实现IResourceProvider接口。实现方法 code
public object GetObject(string resourceKey, System.Globalization.CultureInfo culture)
和getter属性
public System.Resources.IResourceReader ResourceReader
GetObject方法是获取某个资源名的资源值;ResourceReader属性获取的IResourceReader获取整套资源集合的读取器。ResourceProvider的大体做用则是如此。
在代码中获取资源值时调用System.Web.HttpContext的静态方法GetGlobalResourceObject方法和GetLocalResourceObject
参考文章
.NET的资源并不限于.resx文件,你能够采用任意存储形式[上篇]
http://www.cnblogs.com/artech/archive/2010/12/16/Reource_framewok_01.html
.NET的资源并不限于.resx文件,你能够采用任意存储形式[下篇]
http://www.cnblogs.com/artech/archive/2010/12/17/Reource_framewok_02.html
如何让ASP.NET默认的资源编程方式支持非.ResX资源存储
http://www.cnblogs.com/artech/archive/2010/12/30/ResourceProvider.html