2014-01-14 1 views
0

Существует подтверждающее сообщение, что у нас есть проблемы сОшибки в (немецком языке) предупреждение от формы .asp

confirmation message

Код является в настоящее время

Response.Write("<script type='text/javascript'>") 
Response.Write("alert('Vielen Dank für Ihre Anfrage zu BruxZir Zirkonoxid. Wir haben Ihren Wunsch nach weiterer Information erhalten und werden Sie innerhalb der kommenden f&uuml;nf Arbeitstage kontaktieren. Bitte halten Sie sich auf dem Laufenden über unsere wachsende Liste an autorisierten BruxZir Laboratorien.');") 
Response.Write("window.location.replace('index.aspx');")  
Response.Write("</script>") 

Как вы можете см. даже когда добавлен немецкий объект HTML &uuml;, он не отображается правильно. Появляется фактический объект. Но когда мы вводим ü, символ не отображается, как предполагалось.

Форма HTML использует то, что, я думаю, может быть VBScript в форме .asp. Я не уверен, что это не мой основной язык. Как я могу это ответить?

<form action="send.asp" method="post" name="Form1" id="Form1"> 

EDIT:

Это теперь показывает, что у меня есть в моем файле send.asp после первого ответа на вопрос.

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<% 
function TestCaptcha(byval valSession, byval valCaptcha) 
valSession = Session(valSession) 
Session(valSession) = vbNullString 

valCaptcha = LCase(valCaptcha) 
valSession = LCase(valSession) 

if valSession = vbNullString then      
    TestCaptcha = false 
else 
    if (StrComp(valSession,valCaptcha) = 0) then  
     Call ProcessContact 
    else 
     Response.Write("<script type='text/javascript'>") 
     Response.Write("alert('Sie haben einen falschen Code eingegeben. Bitte versuchen Sie einen anderen Code.');") 
     Response.Write("history.go(-1);") 
     Response.Write("</script>") 
     Response.Flush 
    end if 
end if 
end function 
%> 

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<% 
Sub ProcessContact 
Response.Buffer = true 
dim gFName, gLName, gEmail 
<!-- more code below --> 

И это новое предупреждение, которое кажется прекрасным. Но я хорошо структурировал свой код здесь?

new alert

+1

Да, я думаю, что структура oke, лично я бы отложил код внутри функции немного вправо. Кодовая страница находится в верхней части страницы, вот и все. Тип контента находится в , который должен был быть. Вот хороший набор символов для проверки любого случая интернализации: áäÇçéčëíďńóöçÖöÚü Эта строка также содержит символы только для юникода (č ď и третье, что я не могу выразить). – Paul

ответ

1

Вы, вероятно, не хватает двух предметов первой необходимости строки в источнике:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

Это дуэт. Он сообщает, что движок ASP VBscript работает внутри с 2 байтовыми символьными строками и, если вы используете response.write, чтобы фактически преобразовать строки в UTF-8. Вторая строка сообщает браузеру о необходимости получения UTF-8.

Не используйте функции chr/asc; вместо этого используйте функции chrw и ascw. И обязательно используйте редактор, который может сохранять исходные файлы в UTF-8.

Это должно устранить проблему интернационализации.

0
'The LCID property specifies how dates, times, and currencies are formatted 
'German - Germany 
Response.LCID = 1031 

'The CodePage property specifies, how strings are encoded 
'65001 utf-8 
Response.CodePage = 65001 

'The Charset property appends the name of a character-set 
Response.CharSet = "utf-8" 
+0

Мне любопытно узнать больше об этом. Я обновил свой код выше и задаюсь вопросом, как ваше предложение будет вписываться, спасибо. – JGallardo

Смежные вопросы