利用正确的编码在经典ASP中显示多种语言

时间:2018-05-13 22:38:11

标签: vbscript asp-classic multilingual

我有一个显示多种语言的网站。该站点是经典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 ++中的字符本身也会发生变化,具体取决于我选择的选项,从来都没有正确的编码。不确定解决方案是否要创建多个文件,每种语言一个,每个文件都相应编码(这在技术上是可行的,但需要做大量的工作和维护)。

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

谢谢。

0 个答案:

没有答案