Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera, beleza?
Seguinte, estou pastando pra gravar textos com acentos, cedilhas, etc, usando o JQuery.Ajax.
O problema é que, de acordo com a documentação, o JQuery.Ajax sempre irá mandar o texto em formato UTF-8, independente do Charset configurado na página.
O que preciso é saber como converter uma String UTF-8 para ISO-8859-1 no asp, antes de gravar no banco de dados..
O PHP tem uma função para fazer isso, mas até agora em ASP não consegui de jeito nenhum resolver..
Alguém já passou por esse problema e sabe como resolver?
Agradeço desde já pelo Help pessoal.
Abs,
Prompt
uma boa função, depois eu coloco ela no lab. de script.....
abraços
Achei uma solução mais simples:
Eu estava tentando usar um retorno em páginas "charset=iso-8859-1" mas estava dando problemas de caracteres de acentos, e como uso AJAX já tenho uma outra formatação que estava dando conflito quando eu tentava consertar usando outros métodos, então o comando abaixo foi o único que resolveu.
'DecodeUTF8
' Decodes a UTF-8 string to the Windows character set
' Non-convertable characters are replace by an upside
' down question mark.
'Returns:
' A Windows string
function DecodeUTF8(s)
dim i
dim c
dim n
i = 1
do while i <= len(s)
c = asc(mid(s,i,1))
if c and &H80 then
n = 1
do while i + n < len(s)
if (asc(mid(s,i+n,1)) and &HC0) <> &H80 then
exit do
end if
n = n + 1
loop
if n = 2 and ((c and &HE0) = &HC0) then
c = asc(mid(s,i+1,1)) + &H40 * (c and &H01)
else
c = 191
end if
s = left(s,i-1) + chr(c) + mid(s,i+n)
end if
i = i + 1
loop
DecodeUTF8 = sresponse.write DecodeUTF8(var_resultado)
Abraços!
Fábio!
pode também...
colocar Response.CharSet = "ISO-8859-1". No cabeçalho do site a meta tag <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />, e ao cadastrar qualquer coisa dei um replace nas strings desta forma abaixo.
Function HTMLEspeciais(sString)
If (sString <> "") Then
sString = Replace(sString, "á", "á")
sString = Replace(sString, "â", "â")
sString = Replace(sString, "à", "à")
sString = Replace(sString, "ã", "ã")
sString = Replace(sString, "ç", "ç")
sString = Replace(sString, "é", "é")
sString = Replace(sString, "ê", "ê")
sString = Replace(sString, "í", "í")
sString = Replace(sString, "ó", "ó")
sString = Replace(sString, "ô", "ô")
sString = Replace(sString, "õ", "õ")
sString = Replace(sString, "ú", "ú")
sString = Replace(sString, "ü", "ü")
sString = Replace(sString, "Á", "Á")
sString = Replace(sString, "Â", "Â")
sString = Replace(sString, "À", "À")
sString = Replace(sString, "Ã", "Ã")
sString = Replace(sString, "Ç", "Ç")
sString = Replace(sString, "É", "É")
sString = Replace(sString, "Ê", "Ê")
sString = Replace(sString, "Í", "Í")
sString = Replace(sString, "Ó", "Ó")
sString = Replace(sString, "Ô", "Ô")
sString = Replace(sString, "Õ", "Õ")
sString = Replace(sString, "Ú", "Ú")
sString = Replace(sString, "Ü", "Ü")
sString = Replace(sString, """", """) '"
sString = Replace(sString, "<", "<") '<
sString = Replace(sString, ">", ">") '>
End If
HTMLEspeciais = sString
End Function
Oi Amigo Xanburzum.
Eu tentei fazer isso, mas não deu muito certo, pois nem sempre o retorno vem no formato do replace.
O código que eu usei funcinou 100% e pode ser usado na mesma página da programação,uma vez que não tem o ( option explicit ).
Antes deu achar esse exemplo que eu citei, eu tentei várias formassem sucesso! Algumas funcionavam mas estragavam os acentos do meu retorno do AJAX ou meus acentos em HTML.
Mas consegui resolver de boa.
Acontece que eu pego um retorno do Correio de uma página em PHP e recebo as variáveis dela no ASP, e vinha num formato que deixava os acentos desconfigurados.
Mas tá tudo certo agora!
Abraços!
Ai pessoal, consegui descobrir uma forma de resolver isso.
na verdade, pelo que pude ver, não existem funções no ASP para fazer tal conversão, porém encontrei num site a solução para o problema.
São funções num arquivo .asp que fazem essas conversões na raça!
As funções se encontram abaixo. Salve-as num arquivo separado com o nome utf8.asp:
<%
option explicit
' Simple functions to convert the first 256 characters
' of the Windows character set from and to UTF-8.
' Written by Hans Kalle for Fisz
' http://www.fisz.nl
'IsValidUTF8
' Tells if the string is valid UTF-8 encoded
'Returns:
' true (valid UTF-8)
' false (invalid UTF-8 or not UTF-8 encoded string)
end function
'DecodeUTF8
' Decodes a UTF-8 string to the Windows character set
' Non-convertable characters are replace by an upside
' down question mark.
'Returns:
' A Windows string
end function
'EncodeUTF8
' Encodes a Windows string in UTF-8
'Returns:
' A UTF-8 encoded string
end function
%>
O código abaixo é uma página teste pronta. Salve-a como utf8test.asp e vai visualizar o resultado das funções na página:
<!--#include file="utf8.asp"-->
<head/>
Link da fonte: http://www.codetoad.com/asp_utf8.asp#read_comments
Abraços a todos.
"Espero ajudar muitos como tantos já me ajudaram"
Abs,
Prompt