encodage et internationnalisation

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : encodage et internationnalisation

par cf357 » 25 sept. 2008, 10:03

Pour la 1ere question, la solution de facilité ça serait
string utf8_encode  ( string $data  )
et son cousin
string utf8_decode  ( string $data  )

Hors utf8, tu as
 string iconv  ( string $in_charset  , string $out_charset  , string $str  )
et
bool iconv_set_encoding  ( string $type  , string $charset  )
:)

par BeRoots » 18 sept. 2008, 17:41

oki merci :)

J'étais rester sur l'unicode....

1°) Quel fonction me conseiller vous pour passer des chaines de caractères de iso à utf, vois unicode ou autres?

2°) une de mes grande manie est de saisir mes messages php et tout code ou chaine de caractères passer au navigateur via les codes de caractères de la norme UTF-8. (ex: <a href="ici.php" title="l&rquo;encodeur encod&eacute;">l&rquo;encodeur encod&eacute;</a>) Doit je encoder ce caractère à la main ou plutôt laisser les caractères tel quel en encoder via htmlentities() et htmlspecialchars() ?

Merci d'avance pour vos conseil ;)

par AB » 18 sept. 2008, 00:06

Ben je t'avais donné un lien plus haut avec un exemple de code complet (mySql, PHP, html) codé en UTF-8. Le revoiçi http://www.phpfrance.com/forums/voir_sujet-242539.php

Lis jusqu'à la fin du lien ci-dessus, la dernière remarque concernant strlen() est à noter quand on code en utf-8

Par ailleurs il est conseillé d'utiliser htmlspecialchars() plutôt que htmlentities(). Si tu dois utiliser absolument htmlentities() pense à renseigner le paramètre $encoding de cette fonction car par défaut elle travaille pour l'instant en iso-8859-1.

Concernant ton éditeur de texte ce serait bien que tu enregistres tes fichiers par défaut en UTF-8. Si on te propose d'inclure une signature Unicode (BOM), décoche - ou ne coche pas - cette case.

En suivant ces conseils tu devrais pouvoir commencer sans pb.

par BeRoots » 17 sept. 2008, 19:38

J'ai vraiment du mal avec les encodages de caractères... :(

Si quelqu'un peut m'orienter pour savoir reconnaitre les encodages et surtout les utilisés correctement ;)
Merci d'avance.

par BeRoots » 15 sept. 2008, 00:30

donc du /u00E9 c'est de l'unicode ?

par Sékiltoyai » 12 sept. 2008, 18:02

C'est la configuration par défaut de Apache et MySQL quand on le configure comme cela…

par BeRoots » 12 sept. 2008, 18:00

1°) quel difference entre du coder en utf-8 et unicode ? (c'est juste en utf-8: 'é' == '00E9' et en unicode on rajoute \u devant l'utf-8 pour avoir \u00E9 ?)

2°) doit on obligatoirement encoder les fichier contenant de l'unicode en unicode et contenant de l'utf-8 en utf-8 dans l'éditeur de texte du dit code?

Re: encodage et internationnalisation

par AB » 12 sept. 2008, 17:33

Salut la compagnie :)


l'utf-8 est il la norme à suivre ? pour quel raison ? quel sont ces avantage et inconvennient ?
Oui c'est la norme à suivre. Elle est prévue pour pouvoir afficher tous les caractères internationaux.

Inconvénient, il y a quelques précautions à prendre étant donné qu'apache et mysql travaillent par défaut en ISO 8859-1 pour l'instant.

Donc envoyer l'entête
header('Content-type: text/html; charset=UTF-8'); 
dans le code php
et
mysql_query("SET NAMES 'utf8'");
juste après la connexion à ta bdd.

Par ailleurs ne plus utiliser htmlentities() et la remplacer par htmlspecialchars()

Un exemple, ce petit tuto d'inscription dans un espace membre qui a été fait en UTF-8 http://www.phpfrance.com/forums/voir_sujet-242539.php

Re: encodage et internationnalisation

par _activmik » 12 sept. 2008, 17:14

1°) qu'elle est cette norme pour avoir des symbole de type \u00E9 ?
C'est l'UNICODE je crois.

encodage et internationnalisation

par BeRoots » 12 sept. 2008, 16:16

Salut la compagnie :)

Je souhaite faire en sorte de coder mes caractères accentuer et autres de html (ex: &eacute;) vers une autre norme ainsii (ex: \u00E9)

1°) qu'elle est cette norme pour avoir des symbole de type \u00E9 ?

2°) qu'elle norme utiliser pour l'encodage et pourquoi (moi coté client, j'ai toujours tout coder en &eacute; &nbsp; ... et coté serveur, je ne code pas si possible) ?

3°) l'utf-8 est il la norme à suivre ? pour quel raison ? quel sont ces avantage et inconvennient ?

Merci d'avance de toutes ces reponses ;)