Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alemão_DWS

[Resolvido] Erro com Caracteres Especiais ( CDOSYS )

Recommended Posts

Bom tarde a todos, estou com erro quando o visitante do site X preenche o formulário com caracteres "especiais" ( á , ç , ã , @ , # etc )

 

imagino que tenha a ver com ASCII - UTF-8, mas não sei como colocar isso no código.

 

 

<%@ Language=VBScript%>
<html> 
<head>
	<title>Formulário</title> 
</head> 
<body>
<% 
Dim cBody, n 
cBody = ""
cBody = cBody & "Nome: " & Request.Form("Nome") & "<BR>"'vbCrLf
cBody = cBody & "Email: <a href='mailto:" & Request.Form("Email") & "'>" & Request.Form("Email") & "</a>" & "<BR>"'vbCrLf
cBody = cBody & "Assunto: " & Request.Form("Assunto") & "<BR>"'vbCrLf
cBody = cBody & "Comentário: " & Request.Form("Comentario") & "<BR>"'vbCrLf

'## Configuração do cabeçalho da mensagem
sDestinatario = "xxxx@yyyyy.com"
sRemetente = "xxxx@yyyyy.com" 
sResponder = ""
sAssunto = "Cadastro de Empresa"
sMensagem = ""

'## configurações do componente CDOSYS
Set objCDOSYSMail = Server.CreateObject("CDO.Message")

'Cria o objeto para configuração do SMTP
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")

'SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"

'Porta do SMTP
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport")= 25

'Porta do CDO
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

'Timeout
objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
objCDOSYSCon.Fields.update

'Atualiza a configuração do CDOSYS para o envio do e-mail
Set objCDOSYSMail.Configuration = objCDOSYSCon

' #### CONFIGURAÇÕES DO CABEÇALHO DA MENSAGEM ####
'configura o remetente
objCDOSYSMail.From = sRemetente

'configura o destinatário
objCDOSYSMail.To = sDestinatario

'configura o reply-to
objCDOSYSMail.ReplyTo = sResponder

'configura o assunto
objCDOSYSMail.Subject = sAssunto

'configura o conteúdo da mensagem
'objCDOSYSMail.TextBody = sMensagem

'### FIM DAS CONFIGURAÇÕES DO CABEÇALHO ###

'para envio da mensagem no formato html altere o TextBody para HtmlBody
objCDOSYSMail.HtmlBody = cBody
sMensagem = sMensagem & cBody
'objCDOSYSMail.fields.update

' ### ENVIA O E-MAIL ###
objCDOSYSMail.Send

' ### DESTRÓI OS OBJETOS ###
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing
'response.write "Mensagem enviada para:  "&sDestinatario&"..." 
Response.Redirect("http://www.XXXX.html")

%>
</body> 
</html>

Desde Já, fica meu agradecimento

Compartilhar este post


Link para o post
Compartilhar em outros sites

Monte uma página HTML inteira no corpo do e-mail e acrescente esta linha:

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

 

beleza, vou tentar,

 

mas eu coloco isso no "cabeçalho" da página ou formulário ?

 

se for no formulário, como ficaria no código isso ?...desculpa pela ignorância

 

Grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo assim:

cBody = ""
cBody = cBody & "<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" ></head><body>"
cBody = cBody & "Nome: " & Request.Form("Nome") & "<BR>"'vbCrLf
cBody = cBody & "Email: <a href='mailto:" & Request.Form("Email") & "'>" & Request.Form("Email") & "</a>" & "<BR>"'vbCrLf
cBody = cBody & "Assunto: " & Request.Form("Assunto") & "<BR>"' & vbCrLf
cBody = cBody & "Comentário: " & Request.Form("Comentario") & "<BR>"' & vbCrLf
cBody = cBody & "</body></html>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo assim:

cBody = ""
cBody = cBody & "<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" ></head><body>"
cBody = cBody & "Nome: " & Request.Form("Nome") & "<BR>"'vbCrLf
cBody = cBody & "Email: <a href='mailto:" & Request.Form("Email") & "'>" & Request.Form("Email") & "</a>" & "<BR>"'vbCrLf
cBody = cBody & "Assunto: " & Request.Form("Assunto") & "<BR>"' & vbCrLf
cBody = cBody & "Comentário: " & Request.Form("Comentario") & "<BR>"' & vbCrLf
cBody = cBody & "</body></html>"

Testei, porém deu esse erro após clicar para enviar o formulário

 

______________________________________________________________________

 

Microsoft VBScript compilation error '800a0401'

 

Expected end of statement

 

/formcoment.asp, line 10

 

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

 

_______________________________________________________________________

Compartilhar este post


Link para o post
Compartilhar em outros sites

É um problema com aspas:

cBody = ""
cBody = cBody & "<html><head><meta http-equiv=""Content-Type"" content=""text/html;charset=utf-8""></head><body>"
cBody = cBody & "Nome: " & Request.Form("Nome") & "<BR>" 'vbCrLf
cBody = cBody & "Email: <a href='mailto:" & Request.Form("Email") & "'>" & Request.Form("Email") & "</a>" & "<BR>" 'vbCrLf
cBody = cBody & "Assunto: " & Request.Form("Assunto") & "<BR>" 'vbCrLf
cBody = cBody & "Comentário: " & Request.Form("Comentario") & "<BR>" 'vbCrLf
cBody = cBody & "</body></html>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

É um problema com aspas:

cBody = ""
cBody = cBody & "<html><head><meta http-equiv=""Content-Type"" content=""text/html;charset=utf-8""></head><body>"
cBody = cBody & "Nome: " & Request.Form("Nome") & "<BR>" 'vbCrLf
cBody = cBody & "Email: <a href='mailto:" & Request.Form("Email") & "'>" & Request.Form("Email") & "</a>" & "<BR>" 'vbCrLf
cBody = cBody & "Assunto: " & Request.Form("Assunto") & "<BR>" 'vbCrLf
cBody = cBody & "Comentário: " & Request.Form("Comentario") & "<BR>" 'vbCrLf
cBody = cBody & "</body></html>"

 

Anderson,

 

Muito obrigado pela atenção, bom fiz a correção das aspas, não apareceu o erro no envio do formulário, mas os caracteres continuam chegando de forma errada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente alterar de UTF-8 para ISO-8859-1.

Anderson, sei que já estou ficando chato, mas ainda não funcionou, creio que exista alguma linha de comando que faça isso no código e não no "corpo" do formulário:

 

Achei alguma coisa do tipo:

 

BodyPart.charset = "unicode-1-1-utf-8
e

 

msg.BodyPart.Charset = "UTF-8"
msg.TextBody = Message
msg.TextBodyPart.Charset = "UTF-8"
msg.HTMLBody = Message
msg.HTMLBodyPart.Charset = "UTF-8

Esses foram alguns exemplo que eu peguei, mas sou tão tosco que não entendi exatamente como "encaixar" dentro do meu código ( estou tentando aqui ) :unsure:

 

Tentei assim

 

objCDOSYSMail.BodyPart.Charset = "UTF-8"
objCDOSYSMail.TextBody = cBody
objCDOSYSMail.TextBodyPart.Charset = "UTF-8"
objCDOSYSMail.HTMLBody = cBody
objCDOSYSMail.HTMLBodyPart.Charset = "UTF-8"
não rolou, não deu erro no envio, porém os caracteres continuam chegando de forma errada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abra o arquivo no DreamWaver.. vá ao menu Modify - Page Properties.... na parte de Document Encoding.. selecione Europeu Ocidental... aplique e salve o documento.. pronto..

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sem palavras, os dois estavam certos, muito obrigado mesmo, o pessoal aqui sempre resolvendo meus problemas.

 

Eu fiquei tão "bitolado" no formulário que não imaginei que o 'cabeçalho" da página fosse influenciar, eu pensei que teria q colocar essa codificação do dentro do formulário...

Solução

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ENVIA</title>
</head>

[ RESOLVIDO ] http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.