UTF-8, d'accord mais.

Nouveau WRInaute
Je fais des sites dans différentes langues et j'ai un problème avec l'utf-8, je ne sais pas comment convertir mes textes, arabes, japonais ou memes francais, en utf-8.
En effet comment savoir que " Çهنه " s'écrit " Çهنه "en utf-8.
Si quelqu'un pouvait m'aider :)
 
WRInaute discret
Tu dis pas quel language tu utilises, mais si tu fais du PHP t'as l'embaras du choix. Regarde du cote de 'mbstring','iconv' et 'recode' (dans l'ordre de ma preference perso).

iconv et recode sont aussi des utilitaires qui se retrouvent en ligne de commande sur la majorite des Unix (de nouveau dans l'ordre de preference perso).

Si t'es sous windows, je peux pas t'aider, mais je suis sur qu'une ame charitable va completer mes infos.
 
WRInaute discret
Salut,

Le format de codage utf8 permet d'utiliser un texte d'un codage different du support entre autre (si mes souvenirs sont correctes).

En creant une page sous dreamweaver, j'ai modifie le charset de la page en utf-8.

Ensuite, j'ai copie le texte " Çهنه " dans les sources de la page.

Puis un copier-coller en mode Design

Le resultat est dispo a cette adresse:
http://le-regent.net/test/encodage.html

Tu noteras que la lecture des sources sous IE et sous FF sont differents.
IE utilise le bon encodage mais il y a des pertes de donnees
FF utilise le bon encodage sans perte de donnees

Il est tout a fait possible d'ecrire du chinois, japonais, arabe, turc, ... dans les sources de tes pages web sans rencontrer de probleme.


Cordialement,

FRed
 
Nouveau WRInaute
trix a dit:
Si t'es sous windows, je peux pas t'aider, mais je suis sur qu'une ame charitable va completer mes infos.
Mes serveur de prod son sous linux, mais je dev sous windows.
J'ai essayer d'utiliser une version d'iconv pour mais bon j'ai pas reussi a le faire marcher.

Pour French Fred
j'utilisai phpedit pour mon code, apparement il ne gère pas l'utf-8, et effectivement avec dreamweaver ca a l'air de marché :D

Merci a tout les deux.
 
WRInaute occasionnel
utf8_encode code la chaîne data au format UTF-8 , et retourne la version codée. UTF-8 est un mécanisme standardisé utilisé par Unicode pour coder les caractère de grande taille dans des flux d'octets. UTF-8 est transparent pour les caractères ASCII , il est auto-synchronisé (c'est à dire qu'un programme peut toujours savoir dans un flux d'octet où un caractère commence), et peut être utilisé pour faire des comparaisons de chaînes standard, comme pour le tri.

ceci étant valable pour PHP >= 3.0.6 et supérieurs
okay?!
 
Nouveau WRInaute
Bizarre, bizarre, ya une semaine j'ai lu que cette fonction ne marchait que sous linux parce qu'elle utilise iconv justement, et là je ne vois rien justement dans la doc. Je l'essaye et ca marche effectivement sous windows :D
Cool.
 
WRInaute occasionnel
Mais est-ce que les conversions par utf8_encode sont vraiment necessaires?
Dans le cadre d'un site multilingue, où il est plus que recommandé d'écrire toutes les expressions, phrases dans des fichiers séparés (textes ou xml), la conversion à t-elle vraiment un sens?
Pour mes sites, je fais des fichiers textes enregistrés en utf-8 et mes scripts se chargent de lire ces fichiers et les réécrire tel-quels au navigateur, aucun besoin de convertir quoi que ce soit.

Code:
[menu]
menu=メインメニュー
home=ホーム
tabs=タブ譜
submit=タブ譜を推薦
links=リンク集

[languages]
languages=Languages
en=English
ja=日本語
fr=Français
es=Español

etc etc

C'est, à mon humble avis, la meilleure solution car elle est très modulable (l'ajout d'une langue n'est en fait qu'un ajout de fichier) et évite tous les problèmes de conversion d'encodage...
 
WRInaute passionné
Bonjour,

L'utilisation des jeux de caractères et références d'entité est loin d'être simple.
Quelques liens utiles :
- Introduction aux jeux de caractères
- L'encodage des caractères, fiches de la présentation de Normand Lamoureux et fichier audio (W3CQuébec)
- Caractères spéciaux et encodage
- UTF-8 sous SciTE, configuration

Pour éviter bien des déconvenues, il ne faut jamais oublier que
Normand Lamoureux a dit:
* que l'encodage se produit au moment d'enregistrer le fichier
* que pour être correcte, la déclaration d'encodage doit correspondre à celle qui fut réellement utilisée
* qu'il ne suffit pas de changer la déclaration d'encodage pour qu'un changement d'encodage se produise
* que les éditeurs de texte ne sont pas également fiables en matière d'encodage et de changement d'encodage

Amicalement,
Monique
 
Nouveau WRInaute
maxttb a dit:
Mais est-ce que les conversions par utf8_encode sont vraiment necessaires?
Dans le cadre d'un site multilingue, où il est plus que recommandé d'écrire toutes les expressions, phrases dans des fichiers séparés (textes ou xml), la conversion à t-elle vraiment un sens?

utf8_encode c'est pour les textes qui viennent de la base de donnée et qui chez ne sont pas stockés en utf-8 mais en je sais pas quoi.
Sinon c'est clair que l''utilisation de fichier est très pratique, je peut gérer le même site dans plusieurs langues donc l'arabe le chinois et le japonais la dessus www.1001celebrity.com
 
Nouveau WRInaute
je vais peut etre dire une anerie, mais pour moi, le plus simple, c'est d" :

1 aller sur yahoo.co.jp pour verifier que tu supportes le charset et le telecharger, le cas echeant
2 aller sur word, copier coller le texte que tu veux
3 enregistrer sous html
4 fermer, réouvrir sur dreamweaver, nettoyer le code
5 vérifier le code, et la, découvrir "oh merveille !" que tout le code est passé en 〹 et consort, ce qui te permet de rester en caractere unicode.

6 le meilleur, c'est que si tu fais un site autoadministrable, tu peux utiliser le richedit (en javascript) pour faire tes conversions a la volée.... top non ?

un bout d'exemple de résultat : http://www.tahiti-tourisme.pf/articles. ... 3&etabid=8
 
WRInaute discret
c'est vrai que c un peu perturbant ces histoire de UTF-8. J'ai fais quelques tentaives dernierement, ou j'ouvrais un flux en UTF-8 (donc deja encodé), mais header html indique que la page etait en utf-8... mais malgre cela, le resultat affiche etait illisible.

Je n'ai pas trouve enormement de tuto expliquant comment dealer avec le monde des formats de caracteres divers et varie :? ....

Je m'y remettrait un de ces quatre, pour l'instant j'en resterait au carateres + ou - romains :)
 
WRInaute discret
je devais faire un tutoriel la dessus dur developpez .xxx mais je n'ai aps le temps.

C'est galere a mettre mais quend tout fonctionne, yeepeee !!!

Bon courage en totu cas.
 
WRInaute discret
Bonjour,

Je me suis apercu que le fichier que j'ai presente n'est plus disponible.
Et certains d'entre vous sont arrives sur une page 404.

Voici deux fichiers enregistres au format UTF-8:
Ils contiennent des textes dans les langues suivantes:
- arabe
- turque
- chinois
- japonais
- thailandais
- russe

http://coding.le-regent.net/encodage-UT ... 859-1.html
Ce fichier utilise le charset ISO-8859-1, autrement dit le codage latin, mais le codage du fichier est en UTF-8

http://coding.le-regent.net/encodage-UT ... UTF-8.html
Ce fichier utilise le charset UTF-8, autrement dit le codage unicode, et le codage du fichier est en UTF-8

Ce week end, je mettrais quelques exemples en php couple avec une base mysql.

FRed
 
WRInaute discret
Dans la serie, je veux travailler avec de l'encodage UTF-8, voici l'episode 2.

Voici deux autres exemples bases sur le couple PHP/MySql.
Ces deux pages permettent d'inserer du texte et liste le contenu d'une table.
Pour chaque exemple, vous trouverez la version source de la page

http://coding.le-regent.net/encodage-UTF-8/database.php
Fichier enregistre au format UTF-8 et renvoie de l'ISO-8859-1.
L'affichage des donnees sont correctes mais en editant les sources, on s'apercoit que les textes sont en code html "&...;".

http://coding.le-regent.net/encodage-UT ... _utf-8.php
Fichier enregistre au format UTF-8 et renvoie de l'UTF-8.
Ici les sources de la page sont correctement restituees.

Quelques details sur l'environnement:
- le serveur web est apache en version Apache/1.3.29
- PHP en version 4.3.11
- MYSQL en version 4.0.21

FRed
 
WRInaute discret
superbe, ben j'ai trouve ma mission pour la semaine prochaine: supporter tous les type de caracteres :D .

Une petite precision: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> suffit-il a definir (forcer) l'encodage pour le browser? paske mes dernier test mon laisse perplexe :?
 
WRInaute discret
oui.

Ce parametre permet d'indiquer au client (navigateur) quel encodage choisir.
Mais il faut aussi indique sous quel format d'encodage, le serveur doit envoyer le resultat.
Pour cela utilise le code suivant:
Code:
header('Content-Type: text/html; charset=UTF-8');

Tu trouveras l'exemple dans le debut de la page a l'adresse suivante:
http://coding.le-regent.net/encodage-UT ... utf-8.phps

FRed
 
WRInaute discret
merci french fred,

je pense pas que j'aurais trouve ca avant quelques heures de geeking 8) .

bon, week end a la campagne pis la semaine prochaine je test. héhéhéhé
 
WRInaute discret
super french fred :D

le coup du header() marche nickel.
est-il possible de conserver des caracteres encodé en utf-8 dans une base mysql qui a priori est en ISO-8859-1?

merci
 
WRInaute discret
Salut Chantra,

Au risque de me repeter, tu as toutes les informations dans les exemples que j'ai presente, a savoir la page database_utf-8.php:

Dans l'exemple http://coding.le-regent.net/encodage-UT ... _utf-8.php, je sauvegarde un texte d'une langue quelconque dans une table mySQL.
Donc oui, il est possible de sauvegarder les carateres dans une table.

Je t'invite a consulter les sources de l'exemple ici

Le server mysql est en version 4.0.21 (cf: hebergement chez sivit)

FRed
 
WRInaute discret
autant pour moi,

effectivement, en inserant les caracteres sous le format utf-8 dans la base, ca marche bien.
maintenant, je me demande s'il n'est pas possible de specifier a apache (a travers le .htaccess) de directement renvoyer ses resultat en utf-8. ceci de maniere a ne pas renvoyer un header("content...utf-8") sur chaque page.

Je suis en train de fouiller, mais ne trouve pas de resultat pour l'instant.

si jamais tu as une idee :)
 
WRInaute discret
dans le php.ini tu peux signifier quel type de caractère en entrée et en sortie.
Mais il vaut mieux mettre le charset églaement tout comme il vautmieux encoder tes fichies php, etc en utf-8 et avoir ta base en unicode.

Il y a pas mal de choses a prendre en compte.
 
WRInaute discret
Avec GG c'est facile ;)

Apres une lecture rapide, il faut ajouter le code suivant dans ton .htaccess:
Code:
AddDefaultCharset UTF-8

Je n'ai pas teste mais il y a,peut etre, quelques modifs a faire !?
 
WRInaute discret
french fred, tu es le roi :D

mes premieres tentative etait d'ajouter:
Code:
php_flag default_charset UTF-8
dans mon .htaccess, mais seulement, cela necessite que la configuration du serveur soit tres lache.

Code:
AddDefaultCharset UTF-8
est pile-poil.

desole french fred, mais j'ai cherche google avec des requetes comme ".htaccess force encoding"...

merci mille fois.
 
WRInaute discret
Nouveau WRInaute
Utilisation d'unicode, encodage chinois unicode

Bonjour,

En utilisant unicode, tu règles tout tes problèmes d'afficages.
En revanche je ne sais pas comment les moteurs de recherche réagissent.

Je créé des sites en chinois, pour cela j'utilise le convertisseur Caractère - Chinois => Unicode sur ce site:

-http://www.chine-nouvelle.com/outils/convertisseur-unicode.html

Il doit surement exister l'équivalent pour les autres jeux de lettres ou caractères.

[Edit zecat : ca commence a bien faire demoore ton casage d'url a tout bout de champs. On va pas passer notre vie à les desactiver ![
 
WRInaute discret
demoore a dit:
Je créé des sites en chinois, pour cela j'utilise le convertisseur Caractère - Chinois => Unicode sur ce site:

-http://www.chine-nouvelle.com/outils/convertisseur-unicode.html[/url]

Il doit surement exister l'équivalent pour les autres jeux de lettres ou caractères.
Je crois que tu confonds unicode et caratere html.
En faite, le site que tu cites converti les carateres chinois en entite html.

le e avec un accent aigu sera sous cette forme:
Code:
&eacute;

L'un des principes de l'unicode permet d'ecrire des ideogrammes chinois (par exemple) dans le code source de la page html

Voici un exemple concret:
http://missandhit.blogspot.com/2005/11/ ... l#comments
Un blog en chinois (je ne sais pas de quoi il est question).
En regardant les sources de la page, tu t'aperceveras que les ideogrammes sont present et lisible.
Le codage de la page est de l'UTF8 ainsi que le charset de la page.


demoore a dit:
En revanche je ne sais pas comment les moteurs de recherche réagissent.

Les robots savent lirent le code html des pages, donc pas de soucis de ce cote la ;)

chantra:
As tu resolu ton probleme ?
 
WRInaute discret
moi le probleme qu'il me reste, c'est que quand je dumpe ma base de données avec mes données encodées en utf8, les données sont foutues lorsque je recharge le fichier du dump :s

soit (bdd bien encodée)------>dump de la base pour sauvegarde pa ex ------> rechargement de la base à partir du dump . Données foutues


:cry:
 
WRInaute discret
chantra a dit:
moi le probleme qu'il me reste, c'est que quand je dumpe ma base de données avec mes données encodées en utf8, les données sont foutues lorsque je recharge le fichier du dump :s

soit (bdd bien encodée)------>dump de la base pour sauvegarde pa ex ------> rechargement de la base à partir du dump . Données foutues


:cry:

As-tu regardé l'interclassement. Je suis pas un pro des bases de données, mais je sais que sur certaines versions de PhpMyAdmin il y a un interclassement et ça joue sur l'enregistrement des données.

Voilà, sinon je suis à la recherches de moteurs de recherches chinois (et des annuaires aussi) avec des liens de soumission direct !

@ bientôt.
 
WRInaute discret
J'ai vu ca, ca depend aussi de si ton interface phpmyadmin est en utf8 ou iso.
me suis pas encore trop plongé dedans pour l'instant
 
Discussions similaires
Haut