2017-08-21 1 views
0

Toutes choses étant égales par ailleurs, c'est-à-dire la même base de code, la même configuration LAMP (versions identiques également), quels paramètres côté serveur affectent l'encodage de charset? J'ai un problème où le signe euro affiche correctement localement (€) et incorrectement (comme â ¬) sur un serveur distant. J'ai vérifié les en-têtes de réponse à la fois localement et à distance et ils retournent tous deux 'Content-Type text/html; charset = UTF-8 'et comme ils utilisent tous deux exactement la même base de code, ils ont tous les deux les appels' content = "text/html; charset = UTF-8" 'meta et php header(). Je présume qu'il est possible d'avoir un réglage httpd ou php.ini quelque part mais j'ai du mal à le voir?Paramètres côté serveur PHp/Apache affectant l'encodage

Merci d'avance.

+0

Des versions du logiciel pourraient être utiles de savoir dans ce cas – RiggsFolly

+0

Certains des paramètres de conversion de sortie PHP bizarre de l'extension PHP mb peut-être? Premièrement, confirmez l'encodage de la page; par exemple. Utilisez les paramètres View → Encoding de votre navigateur pour remplacer l'en-tête et voir à quoi ressemble l'encodage, ou utilisez un éditeur hexadécimal pour voir les octets bruts. – deceze

+0

Voici les versions si ça aide: Apache 2.4.18, PHP 5.6.29, MySQL 5.6.34. Dans le navigateur (Affichage -> Encodage), il s'affiche en Unicode et aucun des remplacements ne l'affiche correctement. – Woody

Répondre

1

Grâce à tout cela, lire «UTF-8 tout au long» a été utile et utile. J'ai trouvé dans mon cas particulier que mon php.ini sur le serveur distant avait default_charset = "iso-8859-1" dedans et il a semblé être de retour à ceci malgré tous les en-têtes UTF-8 dans le code, changeant ceci en default_charset = "UTF-8" a résolu le problème.