Como exibir caracteres japoneses em uma página php?

votos
4

Eu estou tentando exibir caracteres japoneses em uma página PHP. Nenhum carregamento do banco de dados, apenas armazenados em um arquivo de linguagem e echo'ed fora.

Eu estou correndo em um cenário estranho. Eu tenho a página corretamente configurado com UTF-8 e eu testar uma página de amostra no meu servidor WAMP local e ele funciona.

No momento em que testou para fora nossos servidores de desenvolvimento e produção dos personagens não são exibidos corretamente.

Isso me leva a crer, então, que é uma configuração no php.ini. Mas eu não encontrei muita informação sobre isso, então eu não tenho certeza se este é o problema.

Existe algo fundamental que estou perdendo?

obrigado

Publicado 20/03/2009 em 17:47
fonte usuário
Em outras línguas...                            


4 respostas

votos
6

Desde que você declarou que está trabalhando em seu ambiente de desenvolvimento e não na sua vida, você pode querer verificar o Apache AddDefaultCharset e este conjunto de UTF-8, se não é já.

I tendem a certificar-se os seguintes passos são verificados

  1. PHP cabeçalho é enviada em UTF-8
  2. meta tag está definida para UTF-8 (Content-Type)
  3. O armazenamento é definida como UTF-8
  4. saída do servidor está definida para UTF-8

Isso parece funcionar para mim. Espero que isto ajude.

Respondeu 20/03/2009 em 18:05
fonte usuário

votos
6

Você tem que entregar os documentos com a declaração de codificação adequada no campo de cabeçalho HTTPContent-Type .

Em PHP você faz isso através da headerfunção antes de os primeiros dados foi enviado para o cliente, por isso de preferência como uma das primeiras declarações:

<?php
    header('Content-Type: text/html;charset=utf-8');

    // the rest
Respondeu 20/03/2009 em 17:52
fonte usuário

votos
1

Em primeiro lugar, eu vou assumir a mesma máquina do cliente é usado para ambos os testes.

Então, use Firebug ou sua ferramenta de escolha para verificar os cabeçalhos de resposta HTTP no servidor local, e compará-los com os cabeçalhos gerados pelos outros servidores. Sem dúvida você vai encontrar uma diferença.

Normalmente o servidor deve ser incluindo um cabeçalho como este na resposta:

Content-Type: text/html; charset=UTF-8

Se os cabeçalhos sobre os dois sistemas parecem praticamente o mesmo, pegar o corpo de ambas as respostas e carregá-lo em um editor hexadecimal e olhar para as diferenças de codificação.

Respondeu 20/03/2009 em 17:52
fonte usuário

votos
0

Tente seguir (trabalhou para mim, CentOS 6.8, PHP 5.6)

# 1
Apache config

/etc/httpd/conf/httpd.conf
AddDefaultCharset UTF-8

# 2
PHP Configuração

/etc/php.ini:
DEFAULT_CHARSET = "utf-8" >> default_charset = "Shift_JIS"

Nota: definir error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_STRICT

# 3
html cabeça meta

http-equiv = "Content-Type" content = "text / html; charset = Shift_JIS"

Respondeu 27/10/2016 em 05:32
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more