Cette version du forum n'est désormais accessible que pour lire les passionants échanges et partage de techniques qui ont déjà été rédigées ici.
Pour participer aux échanges interscouts, merci d'utiliser
Aller à Page Précédente 1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30 Page suivante |
Auteur | Bug... |
Zebre Zebra One
Nous a rejoints le : 19 Oct 2001 Messages : 13 984 Réside à : Lyon |
Le problème n'est pas la conversion en caractère HTML.
Il existe effectivement une fonction, que j'utilise à peu près partout, pour transformer tous les caractères spéciaux en leur équivalent HTML, et ça ne rpend qu'une ligne. Je ne l'utilise pas dans la preview parce que le but du preview c'est de voir le rendu. (Mais c'est vrai que ça oblige à retaper les caractère spéciaux). Non le problème que je rencontre est bien plus déconcertant et j'ai eu beu chercherune slution pendant nue journée entière sur tous les forums, je n'ai rien trouvé d'autre que le réencodage de tout le forum. Mais je ne connaissais pas la fonction unicode_encode($input, "ISO-8859-1"); (dis donc, tu as l'air calé Corwin, d'où tu la sort celle-là) Pour vous donner un ordre d'idée du problème, volà comment je le résoud aujourd'hui (bidouillage) :
et je ne trouve la chaîne de caractère "â?¬" dans aucun genre de langage (bon, je ne les ai pas tous fait), mais c'est ce que me rend le jquery s'il voit passer des caractères spéciaux. (et si je les transforme en HTML, c'est pareil...) |
izard Membre confirmé
Nous a rejoints le : 25 Juin 2008 Messages : 936 Réside à : Grenoble |
Disons qu'avec quelques années de programamtion en PHP et quelques contributions à la doc officielle, on finit par la connaitre un peu ^^ Mais bon, j'avais pas fait attention, la fonction dont j'ai parlé est expérimentale (prévue pour PHP6 en fait) ... Sinon, j'ai un peu regardé ton problème, et le texte de gauche est la représentation en ISO des valeurs numériques associées au caractère UTF-8 en question. Par exemple le symbole Euro vaut en UTF-8 : 226 130 172, ce qui correspond en ISO à : A ciconflèxe, caractère réservé, carret. Voila un bout de code qui devrait te simplifier la vie si ton PHP supporte mbstring :
Evidemment, ce code ne fonctionne pas dans tous les cas, car puisqu'on repasse en ISO on perd toutes les fonctionalités de l'Unicode ; tu ne pourra afficher que des caractères ISO, donc pas de caractères grecs, de cyrillique ou de kanjis par exemple. Si un utilisateur entre des caractères Unicode non latins, ils seront remplacés par des '?', car ils ne sont pas représentables selon la table ISO. Maintenant, si tu veux pouvoir supporter aussi ces caractères éxotiques, tu n'as pas le choix, il FAUDRA passer tout le forum en Unicode ... PS: Essaye déjà de passer en ISO-8859-15, ça t'ajoutera le support du caractère Euro (qui n'est pas supporté par ISO-8859-1). Les deux charsets sont identiques à l'exception de quelques caractères (euro, et o-e liés notamment) ; la liste de ces caractères est dispo sur Wikipedia. |
Zebre Zebra One
Nous a rejoints le : 19 Oct 2001 Messages : 13 984 Réside à : Lyon |
Pour l'instant cette solution me convient, repasser tout le forum en UTF8 ça veut dire pedre tous les accents des anciens posts... autant dire rendre tout le forum inutilisable, sauf pour les futurs messages. Ce que je cherche c'est justeemnt à éviter que les caractère spéciaux soient remplacés par des "?" (ce qui est le cas par défaut. Une petite transfo en UTF8 permet de les voir en caractère "â?¬", et de là, si la combinaison est assez unique, de les transformer en caractère html correspondant. Ta fonction, si j'ai bien compris, me ramène au cas par défaut, non ? (contributeur à la doc php... dis, tu ne serais pas dispo ces prochaines semaines ![]() |
izard Membre confirmé
Nous a rejoints le : 25 Juin 2008 Messages : 936 Réside à : Grenoble |
Donc en gros ton objectif est de représenter en entités html l'ensemble des caractères unicodes non latins, donc non convertibles en ISO ?
Si ton message est en unicode, alors les entités sont calculées à partir de la version unicode de ton texte. Si jamais on lui rentre du latin-1, le script s'en rend compte et fonctionne normalement ... En fait ça marche même avec tous les encodages supportés par PHP (cyrillique, kanjis, etc ...) Sinon en attendant tu peux aussi utiliser la notation Unicode : Tu veux afficher en utilisant le charset ASCII un caractère unicode étendu. Par exemple le symbole Euro, dont la valeur unicode est 226, 130, 172 en décimal, soit E282AC en hexadécimal, se note � Ensuite, le navigateur se débrouille pour afficher le bon caractère unicode (même si ta page est en ISO ou même en ASCII !) |
izard Membre confirmé
Nous a rejoints le : 25 Juin 2008 Messages : 936 Réside à : Grenoble |
Bon, je voulais éditer mon message pour ajouter des choses, mais comme j'ai fait joujou avec les entités Unicode et que je ne voulais pas tout casser, je préfère créer un second message ... Tu peux convertir le contenu des messages en Unicode sans perte, grâce à ta base de données ! Il suffit de créer une nouvelle table avec le bon encodage et d'exporter les données de l'ancienne pour les importer dans la nouvelle. Ton gestionnaire de DBMS se débrouillera tout seul comme un grand ! Sinon, les prochaines semaines je ne serai pas forcément disponible comme je veux, mais envoie toujours les choses que tu veux que je zieute, je ferai mon possible pour m'y intéresser ... |
Zebre Zebra One
Nous a rejoints le : 19 Oct 2001 Messages : 13 984 Réside à : Lyon |
Ah ouais, pas bête le coup de la copie de base !!! Pas bête du tout ! Mais j'essayerai ton inclusion de fonction avant ça, ça peut valoir le coup. |
Dingo Membre banni
Nous a rejoints le : 21 Juin 2008 Messages : 6 856 |
![]() |
Zebre Zebra One
Nous a rejoints le : 19 Oct 2001 Messages : 13 984 Réside à : Lyon |
Je ne vois pas de problème... |
Dingo Membre banni
Nous a rejoints le : 21 Juin 2008 Messages : 6 856 |
je sais que tu n'es pas fautif - mais c'est énervant
![]() pas eu le temps de corriger d'énormes faute du genre "peux t on" et une heure impossible de se connecté sur le forum ![]() ![]() |
Asellia la chauve-souris
Nous a rejoints le : 31 Août 2003 Messages : 3 308 Réside à : Essonnes |
patroooooooooooooooooooooooooon!! j'ai un mp, mais le lien ne marche pas... je n'ai même pas de petite main quand je passe la souris dessus... je vais contourner le problème en allant directement dans mes mp, mais c'est po pratique... |
Zebre Zebra One
Nous a rejoints le : 19 Oct 2001 Messages : 13 984 Réside à : Lyon |
Envoie moi un MP que je teste |
Irbis Première Dame du forum
Nous a rejoints le : 19 Avr 2004 Messages : 1 736 Réside à : Besançon |
Fatal error: Uncaught mysqli_sql_exception: Table 'esfc_fraternitenet.membres' doesn't exist in /home/clients/989b453fd26fb722d555ad28b5a7c53e/web/forum/voirtopic.php:973 Stack trace: #0 /home/clients/989b453fd26fb722d555ad28b5a7c53e/web/forum/voirtopic.php(973): mysqli->query('UPDATE membres ...') #1 {main} thrown in /home/clients/989b453fd26fb722d555ad28b5a7c53e/web/forum/voirtopic.php on line 973 |