Ir para conteúdo

Arquivado

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

raonibz

Charset HTML x Collation MySql (UTF-8 / ISO-8859-1)

Recommended Posts

Salve galera!

Estou com um probleminha que já pesquisei no Google inteiro quase, e não resolve.

Meu BD MySql usa collation UTF-8

No HTML uso um include da <head> com a tag: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

E no PHP, na conexão com o BD uso: header('Content-Type: text/html; charset=UTF-8') e/ou mysqli_set_charset ($conn,"UTF-8")

Mas eu posso alterar tudo quanto é tipo de charset e collation, e essa bomba não vai!

Se resolve no PHP, estraga no HTML, e vice-versa.

Alguém com uma ideia fresca pra me ajudar? rs

Valeus !

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ponto básico, é que tudo deve ser o mesmo: arquivo.php, código, meta, conexão, SGBD.

http://www.phptherightway.com/#php_and_utf8

Todos os links subsequentes explanam ainda mais o que é necessário verificar.

Não importa o que utiliza, apenas que seja tudo igual. Entretanto, por "convenção", recomenda-se UTF8

Compartilhar este post


Link para o post
Compartilhar em outros sites

O ponto básico, é que tudo deve ser o mesmo: arquivo.php, código, meta, conexão, SGBD.

http://www.phptherightway.com/#php_and_utf8

Todos os links subsequentes explanam ainda mais o que é necessário verificar.

Não importa o que utiliza, apenas que seja tudo igual. Entretanto, por "convenção", recomenda-se UTF8

Então cara, isso até é uma lógica que temos antes mesmo de pesquisar né ! rs

Está tudo como UTF-8, mas mesmo assim se uso UTF-8 no PHP, ele me trás erros como se o BD estivesse em ISO-8859-1, o que não é o meu caso.

Tenho um outro projeto que uso SQL Server, que está como ISO-8859-1, e o HTML e PHP como UTF-8, e só assim funcionou!

Cada coisa louca ! rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se está tudo igual, não tem erro. Se tem erro, tem algo que está diferente. Nesse caso, é ciência exata.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não esqueça de verificar o servidor: http://www.hardware.com.br/dicas/charset-apache.html

Caso que não é muito comum, mas pode ocorrer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde.

Cara não entendi muito bem a sua pergunta, mas imagino que você está passando por um problema similar ao que eu passei esses dias atrás, tudo estava como UTF8_general_ci, mas os caracteres acentuados saiam como uma exclamação...

Eu uso PDO para fazer as conexões com o bando, para mim a solução foi a seguinte.

$conectar = new PDO($dsn, USER, PASS, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));

Usei essa função do PDO e agora está funcionando certinho...

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por asfonseca
      Olá,
       
      Estou enfrentando o seguinte problema. Tenho uma aplicação web desenvolvida por terceiros rodando no CentOS Linux e consultando um banco Oracle. O banco Oracle está configurado da seguinte forma:
       
      NLS_LANGUAGE = BRAZILIAN PORTUGUESE
      NLS_TERRITORY = BRAZIL
      NLS_CHARACTERSET = WE8ISO8859P1
      NLS_NCHAR_CHARACTERSET = AL16UTF16
       
      Quando realizo uma query SQL a partir da aplicação no servidor CentOS em questão o caracteres de acentuação vêm modificados. Tentei elaborar a query com o comando CONVERT, como abaixo:
       
      Sintaxe:
      CONVERT(string_expression,to_data_set[,from_data_set]);
      ex:
      SELECT
        CONVERT( 'Ä Ê Í', 'US7ASCII', 'WE8ISO8859P1' )
      FROM
        DUAL;
       
      No meu caso, estou tentando:
      SELECT 
      CONVERT (expressao, 'UTF8', 'WE8ISO8859P1')
      FROM ...
       
      Porém não consigo encontrar a combinação correta de to_data_set e from_data_set.
       
      Alguma sugestão? Inclusive de uma abordagem diferente dessa do uso do CONVERT. 
       
      Agradeço.
       
      --ASF
       
    • Por Jonathan Gibim
      Estou precisando fazer consultas em tabelas com CHARSET UTF-8  e COLLATION utf8_general_ci os dados no BD ficam salvos da seguinte forma
       
      Ex: São Paulo no BD fica S&atilde;o Paulo
       
      Ao buscar "São Paulo" eu converto para S&atilde;o Paulo e realizo a busca normalmente, porem ao buscar "Sao Paulo" sem a acentuação não me retorna nada, tem alguma ideia do que posso fazer?
    • Por brunoogm
      Pessoal estou desenvolvendo em Android Studio mas estou com o seguinte problema:
      Todos os inserts onde eu coloco alguma palavra composta ele da erro no app, porem todos os inserts com campos sem o espaço eles funcionam
       
      Ex: se eu for inserir "NOME SOBRENOME"  ele me devolve erro (com espaço)
      mas se eu inserir "NOMESOBRENOME" ele funciona normalmente (sem espaço)
       
      Ja configurei o android pra ISO 8859-1 e também pra UTF-8 mas nenhum dos dois me resolveu os problemas.
       
      Alguém tem alguma sugestão do que pode ser ?
    • Por vicentenascimento
      Caros, 

      Estou com um problema em um site multi-lingue. Além do conteúdo estático, terei tabela de produtos por exemplo, em outras línguas de caracteres não ocidentais, como chinês, tailandês, russo, etc.

      no banco SQL consigo cadastrar o texto:
       
      ALTER TABLE `maniocaBlogPost` ADD `posIdioma1` VARCHAR(300) CHARACTER SETgb2312 COLLATE gb2312_chinese_ci NOT NULL ;
       
      e com isso consigo colocar os caracteres 滇赽 房子 dentro do banco

      no lado do cliente, usei na página em php
              setlocale(LC_ALL, 'Chinese-simplified');
       e no html
              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
              <meta property="og:locale" content="zh_CN" />

      só que na conexão com o banco, e no no comando echo da página, não mostra os caracteres chineses só um "?? ??"

      alguma luz??
       
      grato
       
      Vicente Nascimento
      jvcn.pa@gmail.com

       
       
       
    • Por Gilsoney
      Prezados, antes de tudo, gostaria de informar que já rodei o google em busca de uma solução, encontrei várias mas nenhuma serviu.
      Estou tentando exibir o retorno de uma consulta em uma página php, porém ao selecionar registros na tabela, eles aparecem assim:
      O retorno da consulta seria: época do açai ôpa 1º
      �poca do a�ai �pa 1� Meus arquivos .php foram codificados em utf-8 sem BOM no notpad++, o banco de dados e as tabelas estão em utf8_unicode_ci, já inseri <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" > no HTML, header('Content-Type: text/html; charset=UTF-8'); no PHP e no arquivo de conexão com o bd mas n adiantou. No banco de dados ele grava certo através de um formulário JavaScript, porém na hora de exibir em um formulário ele aparece com erro de acento.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.