当我试图让我的 HTML5 应用程序在本机 Windows 8 应用程序中运行时,我在 Visual Studio 2012 中看到此错误:
HTML1121:不允许代码页 unicode,只允许代码页 utf-8。
显然这是一个字符编码问题,但我不熟悉 unicode 和 UTF-8 之间的区别。任何人都可以对此有所了解吗?
当我试图让我的 HTML5 应用程序在本机 Windows 8 应用程序中运行时,我在 Visual Studio 2012 中看到此错误:
HTML1121:不允许代码页 unicode,只允许代码页 utf-8。
显然这是一个字符编码问题,但我不熟悉 unicode 和 UTF-8 之间的区别。任何人都可以对此有所了解吗?
如果您要从 VS 外部将文件带入项目,请使用 VS 和“将文件名另存为”功能,然后从“保存”下拉菜单中选择“使用编码保存”。选择 UTF-8 编码。这通常会解决您遇到的问题。
应用程序包中包含的所有 JavaScript 文件(扩展名为 .js 的文件)都将转换为 JavaScript 引擎可以直接使用的字节码。这需要 UTF-8 编码,IIRC。
当微软说Unicode
它们通常是指 UTF-16 时:
... UTF-16(宽字符)编码,这是 Unicode 最常见的编码,也是 Windows 操作系统上用于本机 Unicode 编码的一种。
http://msdn.microsoft.com/en-us/library/windows/desktop/dd374081(v=vs.85).aspx
designMode 标志最终迫使浏览器回退到 UTF-16,而 Windows 8 需要 UTF-8(迁移到 UTF-8 的决定是相对较新的)。您最好的选择是关闭 designMode 并重新设计页面
Unicode 是一种标准。它将字符分配给抽象代码点。但还有更多,大部分工作实际上是为这些代码点创建属性以及定义它们之间的关系。
例如,字符A
(LATIN CAPITAL LETTER A) 分配给 code point U+0041
。为此代码点定义的属性包括,例如,它的 General Category 是Letter, Uppercase
,并且它是从左到右编写的。它与代码点有关系U+0061
,即U+0061
它的小写映射。这就是Unicode。
有用于将这些抽象代码点映射到计算机中的实际具体字节的 Unicode 转换格式。这就是指定编码、“代码页”或“字符集”时相关的内容。您应该使用 UTF-8。
此外,在某些 Microsoft 上下文中,“Unicode”实际上可以指代编码 UTF-16LE。