| Auteur | |
|---|---|
| QuentinC | # 11 Dec 2005 - 15:48:45 |
Étudiant qui bosse ... ou pas 4883 Posts |
(reprise du message précédent) thierry8 +1 Il existe 3 sortes de personnes : ceux qui savent compter, et ceux qui ne savent pas. |
| thiebo | # 12 Dec 2005 - 11:38:20 |
| 30 Posts |
thierry8 a écrit : La solution est simplissime, le problème se pose même quand la base est en utf8, je l'ai indiqué dans mon post juste avant. Dans php, tu indiques ceci juste après avoir établie la connection avec mysql : mysql_query("SET NAMES, 'utf8'"); et là... comme par miracle, ça devrait marcher ! Modifié par thiebo (12 Dec 2005 - 11:39) |
| lovetronic | # 19 Dec 2005 - 00:41:07 |
| 9 Posts |
Salut, Et bien je crois que je vais apporter une pierre a l'edifice d'utf-8 ... j'ai le meme probleme que thierry8 sauf que l'interclassement de ma base (MySQL) est en latin1, un champ de formulaire, saisi par un utilisateur lambda, contenant le sigle €, stocké dans la base et reformaté par le biais de htmlentities() n'affiche pas &euro mais €, donc ce n'est pas "valide"; m'etant apercu du probleme j'essayais betement de faire : htmlentities($var, ENT_COMPAT, 'iso8859-15') sauf qu'a la place de € j'obtenais '?' ce qui n'est a priori pas "accessible" ... la raison est que MySQL ne connait pas le charset iso-8859-15 (je viens de l'apprendre ce soir en lisant le manuel , faite mysql>SHOW CHARACTER SET;il n'y a pas de latin9 aka iso-8859-15 ! ). donc j'ai l'option de laisser les choses en l'etat (tout reste en 8859-1 : base, page, editeur et tant pis si un jour y'a un € qui traine, finalement comme Alsacreations... ), l'alternative d'un charset windows et là autant aller en enfer tout de suite , ou tout basculer en utf-8 avec ce que ca implique : base plus lourde, fonctions a revoir, mais des page pérennes, valides et accessibles dans n'importe quel navigateur et OS connaissant utf-8 (je pencherai naturellement vers cette solution, mais je suis déjà à la bourre dans mon developpement , 2 mois de boulot a revoir, et loin d'etre un expert es PHP )enfin pour finir, j'aime bien savoir ce que je fais, donc la solution de Thiebo m'a intriguée , et l'explication est donc : (extrait manuel mysql 5.0, section 10.3.6) a écrit : @+ PS et vive les standards, pour qu'on en finisse avec ces prises de tetes Modifié par lovetronic (19 Dec 2005 - 00:51) (House) Music is the weapon of the future |
| Bobe | # 19 Dec 2005 - 02:56:32 |
| 148 Posts |
lovetronic a écrit : Au pire, ce n’est pas dramatique si les données sont stockées en Windows-1252 dans la base de données. Ce qu’il faut éviter surtout, c’est d’utiliser ce jeu de caractères dans les pages HTML (il entre en conflit avec la déclaration SGML du HTML). Donc si on utilise PHP, on peut par exemple utiliser la fonction purge_iso88591() que je donne dans ce sujet : http://forum.alsacreations.com/topic.php?fid=17&tid=6460 Typiquement, on l’utilisera pour traiter les données en sortie, donc avec ob_start('purge_iso88591'). |
| lovetronic | # 19 Dec 2005 - 04:26:07 |
| 9 Posts |
Bobe a écrit : Pour moi si !!! (bon peut etre que j'exagere un peu là ) hormis le coté integriste, il est quand meme plus sur d'essayer de maitriser toute la chaine de traitement de A a Z ,du debut a la fin, surtout avec des formulaires livrés en pature ... mais ta fonction a l'air bien sympa (j'etais en train de faire a peu pres la meme chose avec preg_replace ...) , je vais tester ca . Et on va peut etre pas trop insister avec php/sql ca va virer off-topic.. En tout cas , pour moi à l'avenir ca sera utf-8 , et peut etre le present (si delais suffisants), il y a une notion d'universalité qui me convient tout a fait , une table standardisée de tous les caracteres , pour tous le monde, toutes plateformes, en rapport modifier ses habitudes de code c'est vraiment pas important . La question que je me pose c'est la compatibilité descendante ? ou est le probleme coté client ? any idea ? ++ Modifié par lovetronic (19 Dec 2005 - 04:28) (House) Music is the weapon of the future |
| thiebo | # 02 Jan 2006 - 15:59:01 |
| 30 Posts |
thierry8 a écrit : Sauf qu'on finira bien par tous se mettre à utf8, et si tu crées une base aujourd'hui, tu as peut être intérêt à penser à d'ici un an ou deux, quand mysql sortira une version plus conforme encore avec utf8. Au fond, si tout le monde parle la même langue, c'est tout de même plus facile. Je ne cherche bien sûr pas à construire une tour de babel, mais uniformiser les moyens de communication est avantageux pour tout le monde et il faut bien espérer que les ISO-machin vont TOUS finir par disparaître au profit des UTF8 et UTF16. |
| webdeb73 | # 23 Jan 2006 - 16:02:40 |
| 55 Posts |
Je commence à me mettre à l'utf-8. Etant donné que je souhaite respecter au mieux les standards, je commence par utiliser l'encodage qui se veut être LE standard du web. Je pense qu'il est donc préfèrable d'encoder en utf-8 afin d'assurer une meilleure compatibilité pour toutes les plateformes. ++ |
| pcast | # 24 Jan 2006 - 18:51:36 |
| 1 Posts |
Bonjour, Je viens de tomber sur cette conversation très intéressante pour moi. J'ai un base de données provenant d'un vieux forum phpBB 1.4 codé je ne sais pourquoi en UTF-8 J'aimerai pouvoir mettre cette base de données SQL en ISO-8859-1, est-ce possible et comment faire. Y a t-il un logiciel qui pourrait faire ça ? Ma demande est peut-être incongrue, mais je ne connais pas les codages, cela ne fait pas très longtemps que je m'y intéresse. Merci de votre aide Cordialement Pascal |
| Monique | # 06 Feb 2006 - 21:38:27 |
| 628 Posts |
Bonjour,Raphael a écrit : Comme Laurent n'a pas fait sa pub, et que je viens justement de rechercher des infos à ce sujet... Spécifier l'encodage des caractères d'un document (X)HTML en campagne pour des sites de qualité, conformes et accessibles... et contre les menus déroulants |
| Armony | # 28 Mar 2006 - 11:10:43 |
Même une tortue boîteuse peut 24 Posts |
Bonjour ! Je viens de lire le sujet et je vois qu'il y a les "pros" et les "antis" UTF-8. Etant débutante dans le langage web, je ne suis pas sûre d'avoir saisi toutes les subtilités du débat, mais j'aurais une question : Dans la mesure où je suis amenée à écrire en chinois, l'UTF-8 est-elle la meilleure solution ? En existe-t-il d'autres ? Merci ! P.S. : Bon, pour l'instant je n'utilise ce forum que pour poser des questions, mais quand je serai un peu plus calée, j'essaierai d'y participer de manière plus active Modifié par Armony (29 Mar 2006 - 14:34) Armony ALTINIER |
| gagarine | # 29 Apr 2006 - 20:33:39 |
| 26 Posts |
Je pense que passer à l'utf8 est très important... c'est un peu la même philosophie que de suivre des standards. C'est clair que pour du français on à pas de problème... enfin non car on à dut faire iso machin -15 juste à cause du signe de l'euro... utf8 est ENFIN la solution au problème de passage de fichier entre les différente pays,système,logiciel et j'en passe, ne passer pas à côté!!! Nous somme dans une phase de transition comme avec l'xhtml il y à deux ans, mais dés que la phase de transition sera passé et que tout les logiciel seront par défaut en utf8 il n'y aurra plus de problème... Pour les db exécuté ces deux requettes après votre connexion (ça devrait régler les problème). SET CHARACTER SET 'utf8' SET collation_connection = 'utf8_bin''utf8' EDIT: oups j'avais pas vu qu'il y avait deux page... sorry... Modifié par gagarine (29 Apr 2006 - 20:35) ----------------------- Vive les vacances |
| Sined_style | # 18 Jun 2006 - 12:51:29 |
| 30 Posts |
Bobe a écrit : Bonjour à vous et merci pour votre aide. J'utilise actuelement la fonction ob_start de cette manière: ob_start("ob_gzhandler"); J'ai essayé : ob_start("ob_gzhandler", "purge_iso88591"); Mais bien sur cela ne marche pas. Pouvez vous m'aider? |
| QuentinC | # 18 Jun 2006 - 16:38:19 |
Étudiant qui bosse ... ou pas 4883 Posts |
Sined_style a écrit : D'après les spec, il est possible de faire ceci, mais je n'ai jamais essayé :
Fais juste gaffe de ne pas faire le contraire ... Il existe 3 sortes de personnes : ceux qui savent compter, et ceux qui ne savent pas. |
| buh31 | # 28 Aug 2006 - 23:11:13 |
| 113 Posts |
Bonjour, Je me permet de faire remonter le sujet, car cela n'est pas encore clair dans ma tête, malgré les multiples pages web que j'ai consultés sur la question. J'ai fait un petit test ; je me suis crée 2 pages htms, l'une encodée en utf-8 et l'autre en iso-8859-1 avec des caractères accentués pour chacune : utf-8 : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" iso-8859-1 : <?xml version="1.0" encoding="iso-8859-1"?> Dans le navigateur, la page encodée en iso-8859-1 fait correctement apparaître les caractères accentués. Par contre, la page encodée en utf-8 fait apparaitres des points d'intérrogation à la place des caractères. Si je veux pouvoir afficher mes caractères accentués, je dois mettre à la place de mon caractère une entité html ("é" pour obtenir "é" par exemple). Donc mon premier reflexe, c'est de me dire qu'avec l'encodage iso-8859-1, je vais pouvoir garder un code "propre" en gardant les accents dans mes paragraphes, alors qu'un encodage en utf-8 me le "salira" par l'apparition de nombreuses entités html. Est-ce que je dis des bétises ? Modifié par buh31 (28 Aug 2006 - 23:12) BÜH ! - La liberté de créer, c'est la liberté de penser |
| nORKy | # 30 Aug 2006 - 10:06:36 |
| 146 Posts |
buh31 a écrit : IL ne faut pas oublier une chose : les entêtes HTTP Si tu regardes le type d'affichage que sélectionne ton navigateur lorsque tu appelles ta page utf8, tu verras qu'il est en AINSI. Si tu le mets en unicode, tu n'auras plus de point d'interrogation. Le navigateur sélectionne l'encodage d'affichage en fonction de l'entete HTTP. Il faut donc, modifié ton entete HTTP. En PHP, tu peux utiliser la fonction header, sinon, il faut utiliser les fonctions charset de Apache Sinon, je reviens sur le débat Voici pourquoi j'utilise utf8 partout. Aujourd'hui, je ne suis plus le seul a utiliser AJAX. J'utilise JSON_services pour convertir mes tableaux PHP en structure JSON. Cette conversion travaille uniquement sur de l'ascii ou utf8 ! Je vais donc avoir des problemes si j'utilise notre ISO dans ma bdd ou mes pages html. Par contre, c'est assez deroutant dans ce cas precis d'une fonction PHP qui travaille sur de l'urf8 alors que PHP ne comprends pas utf8 nativement... Je dois malheureusement utiliser les fonctions encore_utf8 dès que j'utilise cette fonction. Tout ca pour dire que l'utf8 permet l'internationalisation, et non pas uniquement dans l'affichage, mais également dans le code et qu'une utilisation de l'utf8 serait rendre compatible sans aucun travail de conversion de nombreuse application. |
| baba0076 | # 30 Sep 2006 - 00:25:21 |
| 1 Posts |
Bonjour à tous ! Depuis ce soir, je m'interrogeai sur le problème. Il est pour moi résolu. Il suffit d'indiquer un charset ISO-8859-1 dans vos pages et dans IE, Firefox et toute la clique, vous mettez encodage UTF-8. Par contre, j'ai remarqué que si vous indiquez un codage ISO-8859-1 et que vous afficher en ISO-8859-1 SOUS FIREFOX et bah les accents et le logo € ne s'affichent pas... C'est bizarre que ça le fasse avec mon site car ici Alsa, c'est en ISO et pourtant j'affiche ISO mais ya les accents et € alors... Alors j'ai remarqué que le codeur de mon design avait du enregistré en UTF et il suffit de recodé le fichier en ANSI et le passé en Unix puis en Windows, retapé les accents et bizarrement tout va mieux ! J'espère vous avoir aidé à résoudre votre problème et gardez ISO, c'est mieux. @+ |
| nORKy | # 30 Sep 2006 - 18:16:03 |
| 146 Posts |
désolé baba, je comprends rien à ce que tu racontes. |
| Mikachu | # 30 Sep 2006 - 18:31:18 |
C'est quand les vacances ? Modérateur 5136 Posts |
a écrit : Il est normal que tu n'arrive pas à afficher le signe euro en iso-8859-1, car ce symbole n'appartient pas à ce charset, il faut utiliser l'iso-8859-15 pour cela. Quand aux accents, il doit effectivement s'agir d'un mauvais encodage du fichier. Une page en ligne ou au moins l'intégralité du code html et css ça aide à vous aider plus vite ! |
| yobuntu | # 20 Oct 2006 - 16:21:30 |
| 38 Posts |
@ bush31 vérifie qd même que ton éditeur de texte a bien enregistrer la page comme de l'utf8 (le ? est typique d'un accent codé en iso 8859-1(5) et lu en utf8) |
| gonga | # 22 Oct 2006 - 15:50:17 |
| 13 Posts |
a écrit : le billet oublié ? : http://french.joelonsoftware.com/Articles/Unicode.html Modifié par gonga (22 Oct 2006 - 18:19) |
| QuentinC | # 22 Oct 2006 - 22:35:41 |
Étudiant qui bosse ... ou pas 4883 Posts |
Bon billet, même s'il commence à dater. Il existe 3 sortes de personnes : ceux qui savent compter, et ceux qui ne savent pas. |