2009-10-16 11 views
2

Je dispose d'un fichier PHP avec une fonction simple écho:Chaînes PHP PHP se mettre en?

echo 'アクセスは撥ねりません。'; 

mais quand j'accéder à cette page que je reçois ceci:

???????????? 

quelqu'un peut me aider? J'ai aussi mon encodage de page en UTF-8, et je le sais, parce que tous les navigateurs que j'ai utilisés l'ont dit. Je fais aussi cela avant la fonction écho:

mb_internal_encoding('UTF-8'); 

Qu'est-ce que cela fait? Cela m'aide-t-il? Tout ce dont j'ai besoin, c'est de pouvoir faire écho à une chaîne japonaise statique.

Merci!

+1

Votre fichier est-il également enregistré en format UTF8? Si oui, peut-être avez-vous besoin d'un autre encodage, tel que UTF-16? – Seb

Répondre

1

Je l'ai eu. Je viens de devoir définir les paramètres d'extension mbstring pour gérer les chaînes internes en UTF-8. L'extension Thas est standard avec ma version de PHP 5.3.0.

7

Il y a quelques endroits où cela pourrait mal tourner.

Tout d'abord, si vous ne définissez pas l'encodage de sortie en php avec en-tête()

header('Content-type: text/html; charset=utf-8'); 

ou dans votre HTML avec une balise meta:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

vous devez Vérifiez le paramètre php.ini default_charset. Les chances sont que ceci soit par défaut iso-8859-1

Deuxièmement, vous devrez peut-être également vérifier l'encodage de contenu que vous enregistrez le script php. Si vous l'enregistrez en ASCII ou en un autre jeu de caractères latins, les personnages seront sauvegardés.

+0

Je fais toutes ces choses, et cela montre encore des points d'interrogation. – agentfll

0

Peut-être que vous imprimez des caractères japonais contenus dans UTF-16 (jeu de caractères étendu)?

0

Je viens de faire un test rapide et votre exemple fonctionne pour moi, il est donc très probablement l'un de ces:

  • Votre fichier est pas enregistré en UTF-8, mais un autre encodage, comme Maj- JIS. Un éditeur décent devrait pouvoir vous montrer quel encodage il utilise
  • Votre serveur envoie de mauvais en-têtes http. Pouvez-vous utiliser un outil pour vérifier les en-têtes et coller les résultats? Ou les résultats que vous avez obtenus du navigateur?
  • Le navigateur utilise une police incompatible

J'enregistré un fichier en UTF-8, collé votre code dedans, et mon serveur sert le fichier avec Content-Type: text/html; charset = utf-8 et ça se voit très bien. N'a pas besoin d'utiliser la fonction mb_ ou quoi que ce soit d'autre.