globalization与全球化
本配置节是关于配置应用程序的全球化设置。
<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"/>
例如如下设置
<globalization
requestEncoding="iso-8859-1"
responseEncoding="iso-8859-1"/>
请求时出现中文(字符编码不对),则会出现乱码,同样响应的页面中的中文也会出现乱码,正常配置时如下图所示

设置了响应编码为iso-8859-1或其他诸如此类ASCII让中文显示乱码的编码,则会出现

其响应的内容均使用了iso-8859-1而使得中文不能正常显示。
假若使用了UNICODE作为响应编码,中文能正常显示,但是js有报错,jquery的脚本出现乱码。


另外在特性中有两个特性——uiCulture和resourceProviderFactoryType 是和资源相关的,即*.resx这部分的内容,实际上资源并不局限于*.resx,这个可以参考蒋金楠老师的博文。uiCulture是指定ui界面的区域语言。resourceProviderFactoryType则是指定自定义的资源提供者工厂类的完全限定名。例如
<globalization uiCulture="zh-CN" resourceProviderFactoryType="FastDoge.Bussiness.MyResourceProviderFactory, FastDoge.Bussiness"/>
这个类FastDoge.Bussiness.MyResourceProviderFactory继承抽象类ResourceProviderFactory。重写两个方法
public override IResourceProvider CreateGlobalResourceProvider(string classKey); public override IResourceProvider CreateLocalResourceProvider(string virtualPath);
两个方法区别在于前者是用的是全局资源的ResourceProvider,而后者是对于每个页面自带的资源的ResourceProvider。
构造的ResourceProvider实现IResourceProvider接口。实现方法
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
globalization与全球化的更多相关文章
- ASP.NET Core 中文文档 第三章 原理(6)全球化与本地化
原文:Globalization and localization 作者:Rick Anderson.Damien Bowden.Bart Calixto.Nadeem Afana 翻译:谢炀(Kil ...
- ASP.NET MVC之国际化(十一)
前言 在项目中遇到国际化语言的问题是常有的事情,之前在做关于MVC国际化语言时,刚开始打算全部利用AngularJS来实现,但是渐渐发现对于页面Title难以去控制其语言转换,于是对于页面Tiltle ...
- [Asp.net 5] Localization-简单易用的本地化
本地化也叫国际化,就是做多语言程序时,可以一键式将当前语言切换到另外一种语言.对于跨国企业或者和国外有业务往来的公司特别重要:就算一个普通公司的门户如果支持中.英.繁体,也会让人觉得高大上.有没有呀, ...
- .NET代码编写规范 整理
.NET代码编写规范 整理 .NET代码编写规范 - [ASP.NET] 2009-02-26 | Tag: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://lensp ...
- MVC之国际化
MVC之国际化 前言 在项目中遇到国际化语言的问题是常有的事情,之前在做关于MVC国际化语言时,刚开始打算全部利用AngularJS来实现,但是渐渐发现对于页面Title难以去控制其语言转换,于是对于 ...
- 1: 介绍Prism5.0 Introduction to the Prism Library 5.0 for WPF(英汉对照版)
Prism provides guidance designed to help you more easily design and build rich, flexible, and easy- ...
- Mysql 5.7 官方文档翻译
始于 2017年4月1日-愚人节 1.1 MySQL 5.7 新功能 本章节介绍了MySQL 5.7 新版本中新增.废弃.删除的功能. 在1.5章节 Section 1.5, "Server ...
- 全球化 System.Globalization.CultureInfo与RegionInfo类
一.CultureInfo类:文化信息 分类: 1.中立文化(Neutral culture): zh-CHS:中文,无区域信息,无格式化信息 2.特定区域文化(Specific culture) z ...
- 重新想象 Windows 8 Store Apps (57) - 本地化和全球化
[源码下载] 重新想象 Windows 8 Store Apps (57) - 本地化和全球化 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 本地化和全球化 本地化 ...
随机推荐
- 在C#代码中应用Log4Net(三)Log4Net中配置文件的解释
一个完整的配置文件的例子如下所示,这个是”在C#代码中应用Log4Net(二)”中使用的配置文件. <log4net> <!-- 错误日志类--> <logger nam ...
- linux下使用adb连接android手机
一.新建文件 cat /etc/udev/rules.d/51-android.rules SUBSYSTEM==" 二.重启 udev sudo /etc/init.d/udev rest ...
- Eclipse 常用快捷键 (动画讲解)
Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率. 编辑相关快捷键 注释 Ctrl + / 快速修复 Ctrl + ...
- iOS中通讯录的开发
通讯录开发主要是获取用户手机中的联系人,进而可以在应用中添加好友 一 .如何访问通讯录 (1)在iOS9之前,有两个框架可以访问用户的通讯录 AddressBookUI.framework: 提供了联 ...
- Android开发-之数据的存储方式一
在Android中,数据的存储分为两种方式: 1.直接以文件的形式存储在目录中 2.以json格式存储在数据库中 将数据以文件的存储又分为两种方式: 1.生成.txt文件 2.生成xml文件 那么今天 ...
- Policy Management
策略管理用于管理数据库实例.数据库以及数据库对象的各种属性,Policy Management 位于Management Catalog下, 一,Basic concepts 引用园子里深蓝的博客&l ...
- 如何变相的绕过QQ邮箱订阅的繁琐核审
先看看正常流程:http://open.mail.qq.com/ 点击“接入订阅”==>申请接入==>登录一下 选择接入完全免费 大概流程就是这样: 下面我们说说快速接入的方法: 1.登录 ...
- Mesh Algorithm in OpenCascade
Mesh Algorithm in OpenCascade eryar@163.com Abstract. Rendering a generic surface is a two steps pro ...
- jsp实现邮件的发送
如果程序出现 454 Authentication failed, please open smtp flag first! 错误,那么一般是邮箱没有开通POP3/SMTP服务,登录邮箱,在设置中开启 ...
- SQL Server-数据库架构和对象、定义数据完整性(二)
前言 本节我们继续SQL之旅,本节我们如题来讲讲一些基本知识以及需要注意的地方,若有不妥之处,还望指出,简短的内容,深入的理解,Always to review the basics. 数据库架构和对 ...