我正在使用 msxsl.exe 从 XML 和 XSL 动态生成 HTML 文件。我已经使用 CreateProcess API 用 C++ 编写了代码,并在其中调用了 msxsl.exe。由于在 Windows 7 中输出是 UTF8,我以相同的编码创建了所有相关文件(如 CSS 和 JavaScript)。一切正常。当我在 Windows 10 (LTSC) 中运行相同的应用程序时,没有加载 JavaScript,因为现在使用 UCS-2LE BOM 编码生成 HTML。我尝试在创建进程之前调用 SetConsoleOutputCP(CP_UTF8)。这并没有解决我的问题。无论操作系统如何,我如何获得 UTF8 输出?
问问题
341 次
2 回答
1
添加
<xsl:output encoding="UTF-8" />
到传递给 msxsl.exe 的样式表
于 2020-01-15T23:03:23.670 回答
0
HTML 文件接受与 HTML 文件本身具有相同编码的 JavaScript。这是默认行为。当使用 JavaScript 和另一种编码时,<script>
可以使用标签的 charset 属性(HTML script charset Attribute)。
因此,添加如下所示的 charset 属性,我可以在所有操作系统中修复 JavaScript 的类型,而与 HTML 编码无关。
<script type="text/javascript" src="MyJavaScript.js" charset="UTF-8"></script>
于 2019-12-19T05:52:34.500 回答