[RESOLU] Changer de 'Charset'

Bonjour à tous,

Pour ma premiere question je vais vous confier mon problème :

Alors, voilà je créé un site web, le site est hébergé chez moi. J’envoie les fichiers par SSH via scp.

Le problème, c’est que la machine avec laquelle je créé mes pages, est en UTF-8. Or, tous les internotes sont en iso
J’aimerais changer !

J’ai dons réalisé ces actions :

[code]# apt-get install locales

dpkg-reconfigure locales[/code]

J’ai donc choisis les deux iso de FR_fr : iso 8859-1 et iso 8859-15 et en defaut iso 8859-1.

Et booum, l’vlà le problème.

Generating locales (this might take a while)... fr_FR.ISO-8859-15@euro... done fr_FR.ISO-8859-1... done Generation complete. perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "fr_FR.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "fr_FR.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C").

La commande locale dit :

# locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=fr_FR.UTF-8 LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL=

Je ne sais plus quoi faire, je ne peux changer cela ?!

Pourquoi ne transformes-tu pas tes pages web en UTF-8? Ou bien, si tu tiens absolument à rester en iso-8859-1 soit tu enregistres tes fichiers en forçant l’encodage en iso-8859, soit du peux utiliser la commande iconv.

Tu peux te mettre dans ton répertoire et faire:

Si tu préfères utilser vim pour forcer l’encodage:

A ta place, je resterais en UTF-8 sur ta station de travail et je transformerais mon site en UTF-8.

Bien mon cher ami,
Si je reste en UTF-8 la moitié des internote n’arrivent pas a lire mes accents.
Moi, créateur des pages, je n’arrive pas a les lire normalement une fois hébergées.
Va faire un tour sur mon site : yukserv.dnsalias.com

Comme tu peux le voir, les accents s’affiche mal, et pourtant :

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

Et ce qui me fait rire, c’est qu’en local ( quand je teste mes pages sans que je les héberge ) mon naviguateur arrive a lire les accents.
Et quand je teste sur la machine serveur, les accents bugs.
A moins qu’il faut installer les locales configurée en UTF-8 sur la machine serveur. Je teste cela.
Réponse : il est deja en UTF-8. Le problème ne vient pas de là.

Ton serveur de prod force apparemment le charset iso-8859-1. Voici les entêtes http renvoyées par ton serveur:

[code]Date: Sun, 27 Apr 2008 18:04:19 GMT
Server: Apache/1.3.34 (Debian)
Last-Modified: Sun, 27 Apr 2008 17:21:59 GMT
Etag: "5fb79-b40-4814b637"
Accept-Ranges: bytes
Content-Length: 2880
Content-Type: text/html; charset=iso-8859-1

200 OK[/code]

Et ceci malgré ton meta UTF-8

Vérifie si tu ne trouves pas une directive du style AddDefaultCharset dans tes fichiers de config d’apache. Fais un:

Réponse, je pense, affirmative :

$ grep -ri defaultcharset /etc/apache2/* /etc/apache2/apache2.conf: #AddDefaultCharset ISO-8859-1 /etc/apache2/conf.d/charset:AddDefaultCharset UTF-8 /etc/apache2/mods-available/proxy.conf: AddDefaultCharset off

Quel est le meilleur pour que tout les internotes voient mon texte en claire ?!

Mais je ne suis pas sous apache2 ! Je n’arrive pas a l’installer celui ci…

Tu peux essayer de le forcer en UTF-8. Vérifie d’abord si tu as la directive:
AddCharset UTF-8 .utf8 dans /etc/apache2/apache2.conf. Ensuite force le charset sur UTF-8 avec AddDefaultCharset UTF-8 dans le même fichier. Relis le fichier de config: sudo /etc/init.d/apache2 reload

EDIT:

J’ai zappé ceci [quote=“Yukiz”]Mais je ne suis pas sous apache2 ! Je n’arrive pas a l’installer celui ci…[/quote]

Alors vérifie dans les fichiers de config de ton Apache 1.

Je n’ai pas de fichier apache.conf :

/etc/apache$ ls access.conf conf.d httpd.conf mime.types modules.conf srm.conf

Je te fais la manip demandée pour apache 1.

/etc/apache$ grep -ri defaultcharset /etc/apache/*
/etc/apache/httpd.conf:AddDefaultCharset on

Je pense qu’il faut donc regarder dans httpd.conf ?!

[quote=“Yukiz”]Je n’ai pas de fichier apache.conf :

/etc/apache$ ls access.conf conf.d httpd.conf mime.types modules.conf srm.conf

Je te fais la manip demandée pour apache 1.

/etc/apache$ grep -ri defaultcharset /etc/apache/*
/etc/apache/httpd.conf:AddDefaultCharset on

Je pense qu’il faut donc regarder dans httpd.conf ?![/quote]

Exactement. Ajoute AddDefaultCharset UTF-8 et relance ton serveur. ensuite on regardera pourquoi tu ne parviens pas à installer apache2. C’est très facile.

Youpi ! merci mais je le rajoute ou ?!

Car c’est :

Ou ca n’a pas pris d’effet ;
Ou je l’ai mal placé ;
Ou, comme d’hab, il y a un probleme :stuck_out_tongue:
Ou je ne sais pas redemarrer apache : #apache restart

[quote=“Yukiz”]Youpi ! merci mais je le rajoute ou ?!

Car c’est :

Ou ca n’a pas pris d’effet ;
Ou je l’ai mal placé ;
Ou, comme d’hab, il y a un probleme :stuck_out_tongue:
Ou je ne sais pas redemarrer apache : #apache restart[/quote]

Tu le rajoutes dans httpd.conf en vérifiant bien que le charset est dispo (directive AddCharset UTF-8 .utf8). Pour relancer apache, je n’ai plus d’apache 1 sous la main mais ça doit être quelque-chose du genre /etc/init.d/httpd reload

Que donne:

/etc/apache# /etc/init.d/httpd reload
bash: /etc/init.d/httpd: Aucun fichier ou répertoire de ce type

Tu es sur que ce n’est pas : # apache restart !?

La ligne de code demandée donne :

/etc/apache# $ls /etc/init.d/* | grep 'http|apache'

Que du rien …

J’ai rajouté la ligne de config sans rien d’autre tout ) la fin de httpd.conf …
Comment tu veux que je test ?!

Donne-nous le résultat de ls /etc/init.d/*

Moué …

/etc/apache# ls /etc/init.d/*
/etc/init.d/acpid                  /etc/init.d/netatalk
/etc/init.d/apache                 /etc/init.d/networking
/etc/init.d/apache2                /etc/init.d/nfs-common
[...]

Alors fais:

Il va te donner toutes les options disponibles. S’il y a reload, fais:

$ sudo /etc/init.d/apache reloadsinon

Ok, ca a fonctionné.
C’etait :

/etc/init.d/apache reload

Mais mon site a toujours plein de caractère spéciaux.

J’ai essayé avec ton IP directe et ça marche. Tu passes par un proxy non?

En passant, tu peux maintenant éditer ton post plus haut avec le ls de /etc/init.d/. Pas besoin de montrer tous les services qui tournent sur ta machine.

Je ne passe par aucun proxy, je ne comprend pas pourquoi ca.
Je ne comprend pas du tout la.

Merci pour ton aide. Tu m’as parlé de apache2 :smiley: ?

Tu dois préciser dans l’entete de tes pages le format que tu veux utiliser utf-8 ou iso et tu peux rajouter dans ton vhost un simple AddDefaultCharset utf-8

Utilise tu une base de données pour ton site?

Si tu tapes ton IP comme url http://91.***.***.***/ tu devrais avoir les accents en UTF-8. Ce n’est donc pas un problème de serveur mais bien de proxy. Et là, je ne vois pas trop comment faire.

Pour apache2, il est installé non?

$ dpkg -l apache2 $ ps aux | grep apache

Bein lis plus haut, je le marque clairement pourtant.
Bisard ce bug avec ma redirection d’IP …

J’utilise phpmyadmin qui ne marche pas pour l’instant.
J’attends d’installer apache2.

Pour repondre a ripat, apache2 est installer mais comporte des erreur au lancement … Je ne comprends pas :
Il manquait le fichier apache2.conf, je l’ai pris de mon autre machine et ca bug toujours. Je vous envoie les messages d’erreur :
Voir : viewtopic.php?f=3&t=13876