强制以 ANSI 编码保存的 .js 文件在 IIS 7.5 上以 UTF-8 显示

强制以 ANSI 编码保存的 .js 文件在 IIS 7.5 上以 UTF-8 显示

我正在将现在在 Windows Server 2003 IIS 6 上运行的 Web 系统迁移到 Windows 2008 Server 上的 IIS 7.5。此系统会生成带有 ANSI(葡萄牙语 - 巴西)重音字符的 JavaScript 文件。这些 JavaScript 显示例如警报消息。在 IIS 6 中我没有遇到任何问题,但现在使用 IIS 7.5,如果这些文件不是 UTF-8,则重音字符无法正确显示。我们有什么办法可以强制这些文件(即使是 ANSI)由 IIS 7.5 以 UTF-8 格式处理吗?谢谢!Cheers Xcarpa

答案1

我认为最好的解决方案不是强制 IIS 以 UTF-8 格式提供文件,而是强制 IIS 告诉世界它们是 ANSI 编码的。否则,就需要 ISAPI 筛选器来实时将 ANSI 编码的文件转换为 UTF-8,这可能会耗费大量的 CPU 周期,具体取决于 JavaScript 文件的数量及其访问频率。

我建议调整 IIS 上的 MIME 类型配置,以强制将 JavaScript 文件作为 ANSI 交付。为此,请使用 IIS 管理器,转到服务器级别,单击 MIME 类型按钮,查找“.js”扩展名,并在 MIME 类型定义的末尾添加“;charset=Windows-1252”(不带引号)。同样,不要替换定义,只需在引号之间添加文本,就可以解决问题。

答案2

正如 Jose 指出的那样,我不会让 IIS 动态转换这些资源。相反,您可能希望使用文本编辑器或命令行工具将实际的 JavaScript 文件转换为 UTF-8,例如重新编码

相关内容