Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal,
No meu campo texto no mySQL os dados com acento está sendo salvo assim: saúde
Ai quando tento pesquisar (select * from tabela where texto LIKE '%saúde%') retorna vazio.
Como converto saúde para saúde?
Alguém pode me ajudar?
Obrigado
Além de verificar o charset dos arquivos e conexões com o SGBD, usando o mysql, use a collation utf8_swedish_ci. Essa collation facilita, e muito, o uso de acentos no SGBD, inclusive a busca (LIKE) por palavras acentuadas.
Olá,
Na página que envia (cadastrar) está:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Na página que lista está:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Já tentei stripslashes, utf8_encode, utf_decode e nada resolveu.
Estou usando o FCKeditor no campo de texto
Tudo deve ser o mesmo. Não importa qual escolha, deve manter somente um.
Pessoal,
Resolvi assim:
function imprime($texto)
{
$substituir = array(
'/á/' => 'á',
'/é/' => 'é',
'/í/' => 'í',
'/ó/' => 'ó',
'/ú/' => 'ú',
'/ã/' => 'ã',
'/õ/' => 'õ',
'/â/' => 'â',
'/ê/' => 'ê',
'/î/' => 'î',
'/ô/' => 'ô',
'/û/' => 'û',
'/ç/' => 'ç',
'/Á/' => 'Á',
'/É/' => 'É',
'/Í/' => 'Í',
'/Ó/' => 'Ó',
'/Ú/' => 'Ú',
'/Ã/' => 'Ã',
'/Õ/' => 'Õ',
'/Â/' => 'Â',
'/Ê/' => 'Ê',
'/Î/' => 'Î',
'/Ô/' => 'Ô',
'/Û/' => 'Û',
'/Ç/' => 'Ç',
'/à/' => 'à',
'/À/' => 'À'
);
return preg_replace(array_keys($substituir), array_values($substituir), $texto);
}
$pesquisar = imprime($_GET['p']);Fernando, bastaria você passar a string acentuada por htmlentities() :thumbsup:
Mas eu passei aqui só pra...
Além de verificar o charset dos arquivos e conexões com o SGBD, usando o mysql, use a collation utf8_swedish_ci. Essa collation facilita, e muito, o uso de acentos no SGBD, inclusive a busca (LIKE) por palavras acentuadas.
Por quê o swedish é o mais adequado? :huh:
@Bruno vou contar um caso meu, não vai responder, mas é interessante... Antigamente quando entrei na agencia, todo mundo aqui usava Latin Swedish... e nunca entendia pq... começou a dar muito problema com acento... padronizei tudo pra UTF8_general_ci e, olha que coisa, problemas acabaram! :closedeyes:
Agora muita gente acaba usando swedish mesmo, e nunca vi ninguem dizer pq.
Por quê o swedish é o mais adequado? :huh:
Eu comecei a usar quando utilizei pela primeira vez o MySQLWorkbench, ele sugere como default.
Sem perceber, usei em um projeto. Descobri que ao pesquisar por palavras como, no exemplo, "saúde" ou "saude" ele retornava os mesmos resultados, ignorando os acentos.
No formato padrão, utf8_general_ci, ele não ignora os acentos, e palavras como "saúde" não são localizadas quando utiliza-se "saude" no LIKE.
@Bruno agora vc me pegou... Antigamente quando entrei na agencia, todo mundo aqui usava Latin Swedish... e nunca entendia pq... começou a dar muito problema com acento... padronizei tudo pra UTF8_general_ci e, olha que coisa, problemas acabaram! :closedeyes:
latin_swedish é diferente de utf8_swedish. Os problemas mais provavelmente foram causados por ser latin e resolvidos por serem alterados para utf8.
latin 1 = iso-8859-1 = Windows 1252
Em alguns lugares encontra-se de um tipo, em outros de outro. No final, tem os mesmos resultados.
Eu sempre usei o utf8_general_ci, mas essa do swedish pareceu interessante.
Será que não existem palavras acentuadas em sueco e, antes de enviar a query o banco converte os caracteres acentuadas para suas contra-partes sem acento?
O funcionamento eu já desconheço, mas essa configuração me ajudou, e muito, no meu tcc... LOL
Eu também pensei o mesmo, que é referente ao alfabeto local (sueco no caso). Teria que buscar na documentação. Só sei que é mais recomendado usar swedish ao invés de general.
#9,
deve ter ocorrido algum outro conflito pois o utf8_general_ci permite a busca acentuada tb..
#6... sim, resolve, mas é uma gambiarra para esconder outra gambiarra..
o "certo" seria reconverter os dados em htmlentities do banco para o formato normal
e não permitir mais que grave com htmlentities quando não necessário.
Como está o charset da sua página. Verifique também o encoding que o seu editor de texto salva os arquivos.