Como posso resolver a minha codificação do idioma do arquivo da página web PHP?

Eu tenho um problema na codificação de idioma em PHP, pois meu arquivo php deve exibir caracteres em inglês e árabe.

Algumas partes da página da web são estáticas e outras são dinâmicas (os dados provêm de um database Sybase) e a codificação do database está correta, pois os dados são bem apresentados.

Minha página da Web possui algumas listas suspensas que são dinâmicas, mas exibem os dados em um formato estranho que não é inglês ou árabe, como quadrados e símbolos desconhecidos.

Verifiquei as possíveis causas e fiz muitas soluções como: –

  • Alterando a codificação do script PHP:

    Salvando Arquivo com o Nome: WebPage1 de Tipo: PHP e Codificação: ANSI ou UTF-8 ou Unicode.

  • Alterando a declaração de codificação HTML:

      
  • Alterando a declaração de codificação PHP:

     header('Content-Type: text/html; charset=UTF-8); header('Content-Type: text/html; charset=windows-1256'); 
  • Alterando as tabelas do database fonte e idioma:

     Arial(Arabic). 

O problema ainda existe e não sei o que posso fazer para resolver isso.

Você pode sugerir qualquer solução?

Verifique a conexão do database, verifique se o sybase_connect conecta ao UTF-8 como charset. Veja http://php.net/manual/en/function.sybase-connect.php

Do comentário que você está usando ODBC para se conectar: ​​parece haver um problema com PHP / ODBC e UTF8. Algumas sugestões são mencionadas neste tópico: problema de codificação Php / ODBC

Sempre use UTF-8.

Seu primeiro header está correto. Seu primeiro header está correto, exceto que você deve usar single = vez de == . Verifique se você usou a function header() antes de enviar qualquer saída para o navegador.

Abra seus arquivos em um editor de suporte Unicode como Editplus, notepad ++ e, ao salvar todos os códigos-fonte ou arquivos HTML, use Salvar como e escolha UTF-8 na canvas Salvar como. Se você usa o eclipse, importe seu projeto para eclipsar, clique com o botão direito e vá para as configurações do projeto, aplique a configuração charset como utf-8 para todo o código-fonte.

Se houver algo errado com os dados provenientes do database MySQL, use o agrupamento apropriado em qualquer coluna de armazenamento de texto (varchar, blob etc). Essas são as sugestões usuais para isso. Se você usar o Sybase, use o Google para configurações de intercalação.

E não altere sua fonte para árabe; Arial já o suporta.

Você parece confundir algo. Nem UTF-8 nem o windows-1256 descrevem idiomas, denotam conjuntos de caracteres / codificações. Embora os conjuntos de caracteres possam conter caracteres normalmente usados ​​em determinados idiomas, seu uso não diz nada sobre o idioma.

Agora, como os caracteres do Windows-1256 estão contidos no conjunto de caracteres do Unicode e, portanto, podem ser codificados com UTF-8, você deve escolher UTF-8 para ambos os idiomas.

E se você deseja declarar o idioma do seu conteúdo, leia o tutorial do W3C sobre Declaração de Idioma em XHTML e HTML .

No seu caso, você pode declarar seu idioma de documento principal como en (Inglês) e partes do seu documento como ar (Árabe):

 header('Content-Language: en'); header('Content-Type: text/html;charset=UTF-8'); echo '

The following is in Arabic: العربية

';

Certifique-se de usar o UTF-8 para ambos.

Intereting Posts