Ir para conteúdo

POWERED BY:

Arquivado

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

kania

Função não funciona

Recommended Posts

Bom dia pessoal, tenho um funçãozinha aqui de retirar acentos que sempre uso, e sempre funcionou, porem não sei o motivo agora, ela deu de em algumas paginas não fazer o que deveria, que é retirar os acentos, não da erro na pagina, mas também não funciona.

 

Function TiraAcento(ByVal Palavra)
	cacento = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ^~ºª"
	sacento = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"
	texto = ""
	If Palavra <> "" Then
			For x = 1 To Len(Palavra)
					letra = Mid(Palavra, x, 1)
					pos_acento = InStr(cacento, letra)
					If pos_acento > 0 Then
							letra = Mid(sacento, pos_acento, 1)
					End If
					texto = texto & letra
			Next
			TiraAcento = texto
	End If
End Function

Como estou usando ela:

 

Link = TiraAcento(Rs("nome_fantasia"))
response.Write Link

Um caso de teste o no banco de dados vem a informação assim:

 

Armários Beagá

 

Após usar a função vem assim

 

Armários Beagá

 

Ou seja deveria vir assim

 

Armarios Beaga

 

Alguém sabe o que pode estar acontecendo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente isolá-la, pegue o code e teste em uma nova pagina sem nada, testei aqui e funcionou..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Houve alguma alteração no FORM que segue para esse script? Antes de utilizar a função não está sendo utilizada nenhum Server.HTMLEncode?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Salgado,

 

Fera na verdade nada sendo feito, eu só faço um select no banco mysql, recupero a informação e depois mando retirar os acentos, tudo como de costume, porem não está funcionando.

Inclusive já tenho a função trabalhando em outra pagina do mesmo site direitinho, por isso não entendo o porque nesta página em específico não funciona. Nuca vi isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

confirme se os dados estão sendo passados e estão vindo corretos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa xanburzum,

 

Então como falei acima, eu tenstei as informações, ao eu efetuar o select no banco recebo os dados com acentos, veja:

 

LinkNormal = Rs("SubCategoria")
LinkModificado= TiraAcento(Rs("SubCategoria"))

Em ambos os casos o retorno vem igual

 

LinkNormal: Salão de Beleza

LinkModificado: Salão de Beleza

 

Ou seja a função TiraAcento não esta sendo executada, esta mesna função eu utilizo em outra pagina no mesmo site e funciona normal, a outra página tem basicamente as mesmas configurações, o que muda são so dados buscados no bd somente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verifique se os dados não estão gravados como HTML no seu banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No MySql, altere o campo para "varChar" se possível, ou tente a sua função com alterações:

Function TiraAcento(ByVal Palavra)
	cacento = "àáâãäèéêëìíîïòóôõöùúûüÀÁÂÃÄÈÉÊËÌÍÎÒÓÔÕÖÙÚÛÜçÇñÑ^~ºª"
	sacento = "aaaaaeeeeiiiiooooouuuuAAAAAEEEEIIIOOOOOUUUUcCnN"
	cont = 0
	resultado = Palavra
	Do While cont < Len(cacento)
		cont = cont + 1
		resultado = Replace(resultado, Mid(cacento, cont, 1), Mid(sacento, cont, 1))
	Loop
	TiraAcento = resultado
End Function
Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal assim,

 

A tabela em questão esta formatada para:

- Tipo: Inno DB

- TipoTipos de Caracteres: latin1

- Intercalação:latin1_german1_ci

 

O campo em questão esta formatado para varchar

 

Os dados são puros não HTML

 

Não estou utilizando nenhum tipo de recurso do tipo Server.URLencode ou Server.HTMLEncode ou algo parecido, somente recupero os dados no banco, e depois o tento tratar com a função, e como falei acima, este mesmo código já uso em outra pagina do mesmo site, pagina com as mesmas características e funciona direitinho, por isto que estou intrigado com isto, não tem a mínima lógica, não erro na pagina, só não funciona.

 

Achei algo gente:

 

Vejam algo, eu monta as página da seguinte forma:

 

A default.asp serve de apoio para todas as outras, nela eu tenho o meu cabeçalho de pagina completo conforme abaixo

 

<%@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>Untitled Document</title>
</head>

Porém nas outras eu não o utilizo por uma questão de que eu já o trago na default, e até porque não se pode ter 2 chamadas do item <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

 

Bom ao fazer umt este com uma pagina zerada sem nenhum item nela, somente buscando os dados no banco e usando a função aconteceu o seguinte:

 

Se a pagina estiver literalmente fazia, sema nada e somente o código asp nela, a função não funciona.

Se tiver o cabeçalho acima na pagina tudo roda certinho.

 

Só que assim eu tenho um pagina de configuração global do site, onde eu utilizo o seguinte código nela:

 

'PREPARA TODAS AS CONFIGURAÇÕES DE TEXTO PARA ASP
'PADRÃO PT-BRASIL INTENACIONAL
Response.ContentType = "text/html"  
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"  
Response.CodePage = 65001  
Response.CharSet = "UTF-8"

Justamente para que não aconteça estes erros,para que o asp consiga saber que as definições paginas são estas, porem pelo que vejo este código não está servindo para nada, porque neste caso ele não definiu que o site deveria utilizar CodePage = 65001

 

Alguem teria uma dica para esta nova situação?

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.