文件编码和内容类型

平台运行时插件定义基础结构以用于定义和发现数据流的内容类型。(有关内容框架的概述,请参阅内容类型。)对不同种类的内容指定不同编码(字符集)的功能是内容类型系统的一个重要组成部分。而且资源 API 还允许对项目、文件夹和文件建立缺省字符集。如果文件内容本身未在其数据流中定义特定编码,将参阅这些缺省字符集。

设置字符集

我们已经在内容类型中见到可对内容类型建立缺省文件编码。资源 API 提供了更细粒度的控制。

IContainer 定义了用于对特定项目或文件夹设置缺省字符集的协议。这允许插件(最终即用户)在内容类型中的缺省字符集不适合的情况下确定适合文件集合的字符集时有更多的自由。

IFile 定义了用于对特定文件设置缺省字符集的 API。如果未在文件内容中指定任何编码,将使用此字符集。文件的缺省字符集优先于在文件的文件夹、项目或内容类型中指定的任何缺省字符集。

在资源的属性页面中为最终用户同时提供了这两个功能部件。

查询字符集

IFile 还定义了用于查询文件的字符集的 API。布尔标志指定是否仅应返回对该文件显式定义的字符集或者是否应返回隐含的字符集。例如:

	String charset = myFile.getCharset(false);
如果未在 myFile 上显式设置任何字符集,则返回空。但是,
	String charset = myFile.getCharset(true);
会先检查对文件显式设置的字符集。如果找不到,则检查文件的内容以获取该字符集的描述。如果还是找不到,则检查文件的包含文件夹和项目以获取缺省字符集。如果仍然找不到,则检查对该内容类型本身定义的缺省字符集。最后,如果未指定任何其它缺省字符集,将返回平台缺省字符集。便利方法 getCharset() 与使用 getCharset(true) 的效果一样。

法律声明。