Использование правильной кодировки для отображения нескольких языков в классическом ASP - PullRequest
0 голосов
/ 14 мая 2018

У меня есть сайт, который отображает несколько языков. Сайт работает под управлением классического 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 ++ в зависимости от того, какую опцию я выбираю, и не все имеют правильную кодировку. Не уверен, что решение состоит в том, чтобы создать несколько файлов, по одному для каждого языка, и каждый файл должен быть закодирован соответствующим образом (что технически возможно, но требует значительного объема работы и поддержки).

Кажется, я не могу найти правильный баланс, подходящий для всех языков, и мы будем благодарны за любые рекомендации.

Спасибо.

...