Jump to content


Anderson de Camargo

Member Since 20/12/2011
Offline Last Active 21/12/2011, 21:29
-----

Posts I've Made

In Topic: Função - Problema C/ Acentuação - Collate

21/12/2011, 14:59

Está rodando local ou online? Não manjo muito disso, mas de repente é alguma configuração do próprio servidor. Manda um SHOW VARIABLES e dá uma olhada nas variáveis character_set_*. Vê se aparece alguém diferente de latin1 ou uft8. Na pior das situações, você pode listar os caracteres manualmente.

SELECT 'á' REGEXP '[0-9aáãà]'



Todas as character_set_* estão como latin1

somente a *_filesystem está como Binary e a *_system está como UTF8.

Usando o REGEXP manualmente, deu certo. Sendo assim, por hora, PROBLEMA RESOLVIDO.



Valew!

Descobri uma coisa interessante.


A função funciona quando crio diretamente na tela da console. O Mysql reconhece perfeitamente os acentuados.
Antes eu estava criando a função em arquivo .sql e depois chamando o arquivo com "SOURCE C:/DATA/ARQUIVO.SQL".

Testei criar o arquivo .sql em 3 editores diferentes (sendo um deles o NOTEPAD), mas sempre da pau com os acentos (não no editor, mas no banco).

O que diabos pode estar ocorrendo?

*Obs.: Não estou parado por causa disto, só estou 'encucado' com esta questão.

In Topic: Função - Problema C/ Acentuação - Collate

20/12/2011, 18:48

Como a função fica no banco mysql, acho que é o collation dele que você deveria alterar. Nunca alterei isso nesse banco em particular, então não sei os efeitos, mas testa aí. Qualquer coisa, você pode usar regex. Pelo menos não precisa fazer uma função própria.

SELECT 'á' REGEXP '[[:alnum:]]'



Valew mano.. aprendi mais uma função.

Mas não deu certo. Alterei o collate do banco 'mysql' e tbm da tabela 'proc'. Dropei a função e rodei novamente. Deu errado.

Quanto ao REGEXP, a sintaxe q vc me passou (usando 'á' como argumento), retornou 0. Mas com 'a' retorna 1. Será que estou usando o collate errado?

IPB Skin By Virteq