Ir para conteúdo

POWERED BY:

Arquivado

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

Vagner Nunes

Acentuação em Buscas

Recommended Posts

Prezados,

 

Boa tarde.

 

Preciso da ajuda dos senhores.

 

A situação é a seguinte, tenho uma página onde é feito uma busca de municípios, porém quando o visitante digita um determinado Municipio que contém acento, o sistema não retorna resultados.

 

Ex.: No banco de dados no campo locais, está cadastrado Vitória, daí se o visitante digitar Vitoria (sem acento) o sistema não retorna resultados, porém se eu cadastrar o municipio sem acento, ele busca normalmente.

 

Tem como configurar a busca para retornar resultados independentemente se estiver ou não com acentuação?

 

Obrigado.

 

Sds,

 

Vagner Nunes

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só você usar as funções para tirar acento e colocar acento. Assim você manda buscar pelas duas palavras, uma com acento e outra sem acento.

 

Essas funções você encontra aqui mesmo no Fórum, no Laboratório de Scripts.

 

Qualquer dúvida poste aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado,

 

Tentei localizar o Laboratório de Scripts, porém não consegui localiza-lo, poderia me indicar onde está?

 

Ou então me passe como devo proceder.

 

Sds,

 

Vagner Nunes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, aqui vai minha dica: Fazer o que o hargon sugeriu não é uma boa saída.

Meu argumento: Dá muito trabalho gerar todas as possíveis combinações de palavras com acentos em lugares diferentes e é impossível saber a priori se o usuário colocou todos os acentos nos lugares corretos, ou omitiu todos, ou apenas alguns.

Exemplo simples: Suponha a palavra "Combinações". Um usuário atento escreveria "Combinações", um mais atento escreveria: "Combinacoes", mas um menos atento poderia escrever: "Combinacões" ou "Combinaçoes", isso sem contar aqueles que irão escrever "Combinassões" e "Combinasoes". Estes dois últimos casos não vou comentar aqui. Mas repare que, em uma palavra com 2 acentos, temos 4 variações possíveis, logo de cara... Imagine uma palavra com 3 ou 4 acentos (se é que existem). O fato é que se a palavra tem N acentos, você tem 2^N variações.

Minha sugestão: Dependendo do banco de dados, é possível informá-lo que você não quer distinguir acentos. Por exemplo, no SQL, você pode configurar o COLLATE como: COLLATE SQL_Latin1_General_CP1_CI_AI, que significa que você vai gravar dados no formato ISO-8859-1, mas não quer distinguir maiúsculas de minúsculas (CI := Case Insensitive) e nem acentos (AI := Accent Insensitive). Outros bancos de dados também possuem suas formas de obter o mesmo resultado.

 

Cordialmente,

Fabio Zendhi Nagao (nagaozen)

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode pegar a palavra a ser pesquisada, guardá-la em uma variavel ou um var. session, usa uma função

para retirar os acentos para fazer a busca, executa a consulta , e depois para retornar exibe a palavra guardada na variavel para o user.

 

abaixo uma outra função para remover acentos:

 

Function RemoverAcentos(ByVal Texto)
	Dim Com_Acentos
	Dim Sem_Acentos
	Dim Resultado
	Dim Cont
	'Conjunto de Caracteres com acentos
	Com_Acentos= "ÁÍÓÚÉÄÏÖÜËÀÌÒÙÈÃÕÂÎÔÛÊáíóúéäïöüëàìòùèãõâîôûêÇç"
	'Conjunto de Caracteres sem acentos
	Sem_Acentos= "AIOUEAIOUEAIOUEAOAIOUEaioueaioueaioueaoaioueCc"
	Cont = 0
	Resultado = Texto
	Do While Cont < Len(Com_Acentos)
	Cont = Cont + 1
	Resultado = Replace(Resultado, Mid(Com_Acentos, Cont, 1), Mid(Sem_Acentos, Cont, 1))
	Loop
	RemoverAcentos = Resultado
End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes de fazer a pesquisa

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.