Paramètre de PHP par défaut l'encodage utf-8?
Dans le "PHP Cookbook", disent-ils (p.589) que de définir correctement l'encodage des données sortantes de l'utf-8, il est nécessaire de modifier la default_encoding
configuration de l'utf-8.
Cependant, je ne trouve pas cette configuration dans php.ini
. Dois-je simplement ajouter une ligne que dirais -default_encoding = "utf-8"
?
J'ai un ;default_charset = "iso-8859-1"
. Comme vous pouvez le voir (;
), pour l'instant il n'est pas activé. Dois-je enlever le point-virgule et le régler à "utf-8"
? Le fait de prendre soin de l'encodage par défaut?
J'ai aussi trouvé d'autres directives de codage que je ne sais pas quoi faire à ce sujet:
[iconv]
;iconv.input_encoding = ISO-8859-1
;iconv.internal_encoding = ISO-8859-1
;iconv.output_encoding = ISO-8859-1
...
; http://php.net/exif.encode-unicode
;exif.encode_unicode = ISO-8859-15
...
;mssql.charset = "ISO-8859-1"
...
;exif.encode_unicode = ISO-8859-15
Est-il une raison pourquoi je ne doit pas simplement de les remplacer tous avec utf-8
?
Vous devez vous connecter pour publier un commentaire.
Vous devez définir votre
default_charset
de l'UTF-8:(PHP livre de cuisine peut avoir une faute de frappe, si ils vous demander de changer le
default_encoding
— je n'ai jamais entendu parler de lui.)Vous voudrez également vous assurer que votre serveur web est configuré pour une sortie en UTF-8 si vous allez à la sortie codé en UTF-8 caractères. Dans Apache, ce qui peut être défini par dans le httpd.fichier conf:
Comme pour la modification de la
iconv
,exif
, etmssql
les paramètres d'encodage, vous n'avez probablement pas besoin de définir ces paramètres ont ces commentée de toute façon) mais c'est une bonne idée de les changer tous en UTF-8, de toute façon.http.conf
fichier. J'utilise WAMPserver et ils expédier Apache avec unhttpd.conf
fichier. Je suppose qu'ils sont la même chose? Aussi, c'est qu'une ligne, vous devez ajouter manuellement? Il n'y a rien à propos de charset dans monhttpd.conf
fichier.AddDefaultCharset
dans le fichier de configuration, vous pouvez regarder à travers la config de fichiers inclus (il va quelque chose commeInclude conf/extra/[something]
) pour voir si elle est définie dans l'un de ces. Si non, il suffit de l'ajouter à la principale httpd.fichier conf.Modifier la ligne
à lire
Sur les autres options, ne les touchez pas. Évitez les paramètres par défaut, toujours explicitement définir l'encodage de tout ce que vous faites
Aussi, méfiez-vous de l'encodage dans lequel vos fichiers PHP sont enregistrés, assurez-vous qu'ils sont en UTF-8, surtout si elles contiennent des chaînes de caractères à afficher ou contre.
J'ai eu un problème sur ma requête mysql qu'il ne serait pas reconnaître certains latine acentuation, si la requête échoue. J'ai pensé qu'il pourrait être le fichier php et ainsi de suite, jusqu'à ce que j'ai découvert que l'utilisation de pdo pour appeler le mysql j'ai dû ajouter le jeu de caractères. La chose étrange est que le serveur précédent, j'ai utilisé a bien fonctionné!
Pour résoudre j'ai changé "UTF-8" à "UTF-8" (sans le tiret), la résolution du problème à la place.
CentOS
Izaias Moura
À htaccess niveau (.fichier htaccess) la directive php doit être
php_value default_charset UTF-8
changer de *default_charset = "utf-8"* à *default_charset = "iso-8859-1"* fonctionne pour moi ( j'utilise le serveur web Apache et Linux OS). pour certaines raisons, lorsque j'utilise l'utf-8, certains caractères ne s'affichent pas bien. Soit ils changent à certaines panneau carré ou un point d'interrogation selon le navigateur web utilisé.