Ir para conteúdo

Arquivado

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

lendadomato

Acentuação estranha em urls

Recommended Posts

Pessoal, tenho um sistema de criar urls amigáveis e que são gravadas no banco de dados e depois em um arquivo sitemap.txt, a codificação das páginas estão como iso-8859-1 e estão salvas como ANSI, até aí tudo bem porque já testei em vários computadores o resultado da gravação e está gravando corretamente essas urls, mas uma coisa que me intriga é que ainda sim tem visitantes que clicam nos links e criam essas urls de forma errada, eu estive verificando no GoogleAnalytics que meu site recebe visitas do mundo inteiro e essas urls são gravadas na maioria quando é de madrugada aqui no Brasil, será que pode ser a codificação dos navegadores que visitam meu site? já testei até com Samrtfhone e outros celulares e está gravando certo, lembrando que o resultado é o mesmo usando codificação utf-8 e já usei até funções de codificação utf-8, segue abaixo como algumas urls estão sendo gravadas quando tem acentuação:

 

palaƒaƒa‚aƒaƒa‚a‚aƒaƒaƒa‚a‚aƒa‚a‚a¡cio-das-artes.html
palaƒaƒa‚aƒaƒa‚a‚a¡cio-das-artes.html
palaƒa¡cio-das-artes.html

pal¨¢cio-das-artes.html

palacio-das-artes.html

palácio das artes

 

s?o-louren?o-2003.html

sao-lourenco.html

são lourenço

 

com.-graaƒaƒa‚a§a-.html

com.-graca-e-paz.html

com. graça & paz

 

t?cnico-qu?mica-2012.html

tecnico-quimica.html

técnico química

 

padre-joi¿½o-botelho.html

padre-joaƒa£o-botelho.html

padre-joao-botelho.html

padre joão botelho

 

colaƒaƒa‚aƒaƒa‚a‚aƒaƒaƒa‚a‚aƒa‚a‚a©gio-staƒaƒa‚aƒaƒa‚a‚a‚aƒaƒa‚a‚aƒa‚a‚a.-antaƒaƒa‚aƒaƒa‚a‚aƒaƒaƒa‚a‚aƒa‚a‚a´nio.html

colaƒaƒa‚aƒaƒa‚a‚a©gio-staƒaƒa‚a‚aƒa‚a‚a.-antaƒaƒa‚aƒaƒa‚a‚a´nio.html

colaƒa©gio-sta‚a.-antaƒa´nio.html

colegio-st.-antonio.html

colégio St. antônio

 

com.-saƒaƒa‚aƒaƒa‚a‚aƒaƒaƒa‚a‚aƒa‚a‚a£o-lourenaƒaƒa‚aƒaƒa‚a‚aƒaƒaƒa‚a‚aƒa‚a‚a§o.html

com.-saƒaƒa‚aƒaƒa‚a‚a£o-lourenaƒaƒa‚aƒaƒa‚a‚a§o.html

com.-saƒa£o-lourenaƒa§o.html

com.-s?o-louren?o.html

si¿½o-loureni¿½o.html

com.-sao-lourenco.html

com. são lourenço

 

pit¨¢goras.html

pit?goras.html

pitaƒa¡goras.html

pitagoras.html

pitágoras

 

 

inf¨®rium.html

inforium.html

infórium

 

logos¨®fico.html

logosofico.html

logosófico

 

flecha-ve¨culos.html

flecha-veiculos.html

flecha veículos

 

vejam onde está de azul é o correto e que grava certo, para testar entre

no site e clique em algum link que tem acentos e verá que está tudo certo, é isso

que me intriga, existe variações para a mesma palavra, se alguém me der uma resposta

do porquê talvez eu possa encontrar um caminho mesmo que seja um replace completo

para caracteres ANSI que eu acho que pode ser a solução.

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

mude para UTF-8

Mude o head da página que solicita os dados para que ele fique assim
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

Na página que responde os dados colocar isso antes do retorno co conteúdo (logo no topo):
<%
Response.AddHeader "Content-Type", "text/html; charset=utf-8"
Response.AddHeader "Pragma", "no-cache"
response.Charset="utf-8"
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo Xan,

 

eu já alterei todas páginas para utf-8 e assim como você citou e também usando iso-8895-1 e não funcionou, o problema pode ser no arquivo que grava o nome da url, segue abaixo o arquivo completo:

<%
Response.AddHeader "Content-Type", "text/html; charset=iso-8859-1"
Response.AddHeader "Pragma", "no-cache"
response.Charset="iso-8859-1"

ProdID = Request.QueryString("produto")
strName = Request.QueryString("camiseta")
strSURL = Request.QueryString("URL")
strsessao = Request.QueryString("sessao")
impeq = Request.QueryString("impeq")
camiseta = Request.QueryString("camiseta")
msgdescricao = Request.QueryString("descricao")

site = "http://www.meusite.com/"
nome = replace(TirarAcento(strName)," ","+")
sessao = "camisetas"

titulo = nome&".html"

link =  strSURL&"&camiseta="&camiseta&"&descricao="&msgdescricao

Set xmlhttp = Server.CreateObject("Microsoft.XMLHTTP")
xmlhttp.Open "GET",link, False
xmlhttp.setRequestHeader "ContentType","text/html"
xmlhttp.setRequestHeader "charset","iso-8859-1"
xmlhttp.setRequestHeader "Encoding","iso-8859-1"
xmlhttp.Send
tudo =  xmlhttp.ResponseText

codigo = Server.HTMLEncode(tudo)

Set FSO = Server.CreateObject("Scripting.FileSystemObject") 

pagina = sessao&"/"&titulo

caminho = Server.MapPath(pagina) 'especifique aqui o caminho onde ficará/está o TXT
Set GRAVAR = FSO.CreateTextFile(caminho,true)
'Foi criado o objeto e logo após busca o txt em caminho para gravar, se não achar, vai cria-lo (por causa da marcação TRUE)


 function htmlspecialchars_decode(someString)
htmlspecialchars_decode = replace(replace(replace(replace(someString, "&", "&"), ">", ">"), "<", "<"), """, """")
end function

gravar.write htmlspecialchars_decode(codigo)
gravar.close

conteudo = site&pagina

Set sitemaps = abredb.Execute("SELECT * FROM sitemaps WHERE url='"& conteudo &"';")
if sitemaps.eof and sitemaps.bof then

conteudo_sitemap = conteudo

sitemaps = "INSERT INTO sitemaps (url) VALUES ('"&conteudo_sitemap&"')"
abredb.execute(sitemaps)

Set FSO = Server.CreateObject("Scripting.FileSystemObject") 

caminho_sitemap = "C:\sitemap2.txt"

'O parâmetro forReading é utilizado somente para leitura.
Const forReading = 1, forWriting = 2, forAppending = 8


'Instancia o objeto FSO.
Set Fso = CreateObject("Scripting.FileSystemObject")

'Abre o arquivo com o método OpenTextFile.
Set ArqTxt = Fso.OpenTextFile(caminho_sitemap,8,True)

'Arquivo aberto, escreve no arquivo
ArqTxt.WriteLine conteudo_sitemap

'Fecha o arquivo com o método Close.
ArqTxt.Close

'Destrói o objeto. Set ArqTxt = nothing

else

conteudo = conteudo

end if

sitemaps.close
sitemaps.nothing

Response.Redirect pagina


%>

o servidor é Windows Server 2012 64 bits e IIS8 , e tive muitos outros problemas com alguns componentes que eu usava.

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual editor vc usa ?

 

vai ter que mudar a CODIFICAÇÃO DE CARACTERES UTF-8 em TODOS os arquivos. e adicione a meta

 

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> se ficar em UTF-8

 

ou

 

<meta http-equiv="Content-Type" content="text/html;1" charset="iso-8859-1" />

 

para iso-8859-1

 

mas ter´[a que mudar a codificação no seu editor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza....

 

qualquer coisa estamos aí...

 

10579967_770294933014305_724607763291001

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.