Ir para conteúdo

Arquivado

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

Alex Oliveira Dos Santos

Variaveis UTF-8 e ISO-8859-1 gravadas em mesma tabela, como separar?

Recommended Posts

Bom dia, pesquisei na internet e nao achei solução para meu desafio, então aqui vamso nós, agradeço pelas ajudas desde já.

 

Eu possuo um site que foi reformulado toda a sua estrutura mudando programação e ficando apenas o mesmo banco, porem quando eu chamo uma variavel do banco na tela temos o seguinte problema:
existem variaveis antigas com um tipo de codificação por ex: UTF-8, mas os registros novos no banco são registrados pelo novo sistema como Iso, então na hora de imprimir se você defini um sharset ou os resultados novos no bd ou os antigos acabam ficando com caracteres especias, então gostaria de saber se tem como ao receber uma variavel do BD eu consiga verificar em qual codificação esta aquela determinada variavel, dento em vista que pode ser uma utf8 ou iso, pois existem ambas na mesma tabela, fico aguardando um help.

 

ex: de váriaveis sendo armazenadas no mesmo BD:
registro velho - > José
registro novo - > Gonçalves

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia ESerra, agradeço a resposta, porem, este comando se aplica ao BD, eu até testei ele, porem oque ele faz é verificar qual o sharset do BD mas eu tenho no mesmo BD dados gravados com codificação diferentes mesmo tendo um determinado sharset ja definido para a tabela, grato

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se aplica ao BD? Tem certeza? Vamos ler a descrição da função juntos:

mb_check_encoding — Check if the string is valid for the specified encoding

 

Em que parte dela fala de BD? Aliás, ela nem tem como pré-requisito uma conexão com algum banco de dados... essa função retornar verdadeiro ou falso para uma string de acordo com o charset que você informar... não há nada relacionado à algum BD aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa me enganei mesmo ESerra, é que testei nao vi resultado e achei que era do bd, bom eu testei alguns scriptsa com o mb_check_encoding mas nao to conseguindo ter sucesso, sera qeu poderia me ajudar neste pequeno testezinho que eu fiz?

<?php
$string = "Gonçalves";
if(mb_check_encoding($string) == true) {
    echo 'O encoding utilizado na variável ' . $string . ' é UTF8';
} else {
    echo 'O encoding utilizado na variável' . $string . 'foi passado pra UTF8 mas ele nao era utf8';
}
?> 

o retorno esta sento:
O encoding utilizado na variável Gonçalves é UTF8
O encoding utilizado na variável Gonsálves é UTF8

 

 

 

help

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual é o padrão de codificação no seu ambiente? Deixa eu adivinhar, você não sabe... Pois, é... se você não sabe e você ler no manual vai ver que quando você não definir o segundo argumento da função ela vai pegar a padrão do seu sistema... neste contexto defina o segundo argumento como UTF-8:

if(mb_check_encoding($string, 'UTF-8') == true) {

Observe que se você apenas escrever ali na string também pode não trazer a informação da forma correta, já que o que estiver escrito diretamente no arquivo vai utilizar o conjunto de caracteres que você definir no documento (UTF/ANSI).

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.