首页 > 解决方案 > 利用正确的编码在经典 ASP 中显示多种语言

问题描述

我有一个显示多种语言的网站。该站点由经典 ASP (VBScript) 驱动,根据用户设置(语言首选项)将以所需语言显示 HTML。语言文件是一个简单的 ASP 文件,它使用一组 if 语句将变量等同于所需的语言。

例如:

if language = "Spanish" then
    day_name = "lunes"
elseif language = "Chinese" then
    day_name = "星期一"
else
    day_name = "Monday"
end if

然后 ASP 页面将包含结果:

Today is <%=day_name%>

经过数小时的研究,我在 ASP 页面的标题中添加了以下内容:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% Option Explicit%>
<%
Response.CodePage = 65001    
Response.CharSet = "utf-8"
%>
<%
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
%>

以上内容适用于英语和中文,但是对于西班牙语和其他语言,奇怪的字符看起来像“�”

我还尝试将 ASP 语言文件保存为 UTF-8、UTF-8-BOM 和 ANSI(使用 Notepad++)。Notepad++ 中的字符本身也会根据我选择的选项而改变,但从来都没有正确的编码。不确定解决方案是否是创建多个文件,每种语言一个文件,每个文件相应编码(这在技术上是可行的,但需要做和维护大量工作)。

我似乎无法找到适合所有语言的正确平衡,我们将不胜感激。

谢谢你。

标签: vbscriptasp-classicmultilingual

解决方案


推荐阅读