【问题标题】:How to get UTF8 html using msxsl.exe in windows 10如何在 Windows 10 中使用 msxsl.exe 获取 UTF8 html
【发布时间】:2020-04-08 05:48:53
【问题描述】:
我正在使用 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 输出?
【问题讨论】:
标签:
html
c++
utf-8
windows-10
msxsl
【解决方案1】:
添加
<xsl:output encoding="UTF-8" />
到传递给 msxsl.exe 的样式表
【解决方案2】:
HTML 文件接受与 HTML 文件本身具有相同编码的 JavaScript。这是默认行为。当 JavaScript 使用其他编码时,<script> 标签的 charset 属性可以使用(HTML script charset Attribute)。
所以添加如下所示的 charset 属性,我可以在所有操作系统中修复 JavaScript 的类型,而不管 HTML 编码如何。
<script type="text/javascript" src="MyJavaScript.js" charset="UTF-8"></script>