Se você estiver trabalhando com php e tiver que usar o sql serve e esse, mostra erro nos caracteres especiais eis aqui algumas soluções:
Exemplo:
Pesquisa:
Se você tiver fazendo alguma consulta pode tirar os caracteres especiais e colocar uma claúsula no sql para não ser case sensitive.
<?php
function novaString($string) {
$string = str_replace( '´', '', $string );
$string = str_replace( '`', '', $string );
$string = str_replace( '~', '', $string );
$string = str_replace( '^', '', $string );
$string = str_replace( '¨', '', $string );
$string = str_replace( 'Ç', 'C', $string);
$string = str_replace( 'ç', 'c', $string);
$string = str_replace( '[ÁÀÂÃÄ]', 'A', $string);
$string = str_replace( 'Á', 'A', $string);
$string = str_replace( 'À', 'A', $string);
$string = str_replace( 'Â', 'A', $string);
$string = str_replace( 'Ã', 'A', $string);
$string = str_replace( 'Ä', 'A', $string);
$string = str_replace( 'ã', 'a', $string);
$string = str_replace( 'á', 'a', $string);
$string = str_replace( 'à', 'a', $string);
$string = str_replace( 'â', 'a', $string);
$string = str_replace( 'ä', 'a', $string);
$string = str_replace( 'ã', 'a', $string);
$string = str_replace( '[ÉÈÊË]', 'E', $string);
$string = str_replace( 'É', 'E', $string);
$string = str_replace( 'È', 'E', $string);
$string = str_replace( 'Ê', 'E', $string);
$string = str_replace( 'Ë', 'E', $string);
$string = str_replace( '&', 'e', $string);
$string = str_replace( 'è', 'e', $string);
$string = str_replace( 'é', 'e', $string);
$string = str_replace( 'ê', 'e', $string);
$string = str_replace( 'ë', 'e', $string);
$string = str_replace( 'ì', 'i', $string);
$string = str_replace( 'í', 'i', $string);
$string = str_replace( 'î', 'i', $string);
$string = str_replace( 'ï', 'i', $string);
$string = str_replace( 'ò', 'o', $string);
$string = str_replace( 'ó', 'o', $string);
$string = str_replace( 'ô', 'o', $string);
$string = str_replace( 'õ', 'o', $string);
$string = str_replace( 'ö', 'o', $string);
$string = str_replace( 'ù', 'o', $string);
$string = str_replace( 'ú', 'o', $string);
$string = str_replace( 'û', 'o', $string);
$string = str_replace( 'ü', 'o', $string);
///para garantir irei deixar cercar todos os caracteres passiveis de erro
$string = str_replace( '#', 'e', $string);
$string = str_replace( '&', 'e', $string);
$string = str_replace( '@', '', $string);
$string = str_replace( 'ª', 'a', $string);
$string = str_replace( '*', '', $string);
$string = str_replace( '!', '', $string);
return $string;
}
$variavel = novaString(
$variavel
);
SELECT * from tabela where descricao like'%
$variavel
%' COLLATE Latin1_General_CI_AI
?>
Esta é uma das soluções caso seja invíavel mudar o charset, mas de preferência é melhor mudar o charset para ISO-8859-1, normalmente uma das duas soluções resolve o problema.
Nenhum comentário:
Postar um comentário