strtr renvoie des caractères farfelus (UTF-8) [résolu] - PHP - Programmation
Marsh Posté le 07-10-2009 à 10:20:34
Justement strtr va prendre tes caractères comme de l'ISO, donc ça va péter. Genre si tu fais juste :
Code : |
strtr va le voir comme ça :
Code : |
Du coup *boom*.
Il faut utiliser un tableau :
Code :
|
Marsh Posté le 10-10-2009 à 15:08:21
J'ai tenté avec ce bout de code :
Code :
|
Mais rien ne se passe...
J'ai certainement fait une erreur.
Marsh Posté le 27-10-2009 à 14:12:53
http://www.weirdog.com/blog/php/su [...] n_php.html
Marsh Posté le 03-11-2009 à 18:09:40
alx067 a écrit : Je vais voir çà ce soir... |
penser aussi aux format d'encodage avant de faire ton script :
utf8_encode()
utf8_decode()
ou dans les fonctions :
exemple pour htmlentities()
htmlentities($string),
devient pour le mettre en utf8
htmlentities($string, ENT_QUOTES, 'utf-8'); (je crois)
bref il doit avoir les meme attributs de fonction avec strtr...
Marsh Posté le 11-11-2009 à 16:24:29
utf8_encode() et utf8_decode() renvoient des caractères farfelus qui n'ont rien à voir avec UTF-8 (hébergeur Free), et htmlentities avec les spécifications utf-8 renvoie de ISO courant...
Je persévère
Marsh Posté le 11-11-2009 à 16:41:40
ReplyMarsh Posté le 11-11-2009 à 17:08:45
L'entête des page est en UTF-8 :
Code :
|
et j'ai rajouté cette ligne pour le PHP
Code :
|
Marsh Posté le 11-11-2009 à 17:11:50
Normal à ISO (htmlentities):
é --> é
Normal à UTF-8 (?):
é --> é
ISO à UTF-8 (?):
é --> é
Marsh Posté le 11-11-2009 à 17:32:25
alx067 a écrit : L'entête des page est en UTF-8 :
|
meme, si ton fichier est encoder en ansi a la base, ca va foutre la merde, regarde dans ton editeur qu'elle encodage a ton fichier, apres si tu travail avec mysql, c'est pareil faut verifié que la connexion est en utf8 et que tes table soit en utf8, il suffis que y'en est un qui diffère dans l'histoire pour que ca marche pas
Marsh Posté le 11-11-2009 à 18:25:45
D'autres problèmes
Code :
|
Affiche :
ééééé
y�y�y�y�y�
Marsh Posté le 11-11-2009 à 20:12:03
t'avai té voir la technique pour enlevé les accent dans le liens que je t'ai passé ?
Marsh Posté le 11-11-2009 à 21:13:23
Je suis allé, mais le résultat me sort des caractères farfelus (A�A�A�A�A�A�A�A�A�A�)...
J'y arrive avec une autre méthode...
Code :
|
Cependant au-delà d'un certanim nombre de données, les caractères sont mals ou pas remplacés...
Marsh Posté le 12-11-2009 à 14:16:04
Où pourrais je trouver un spécialité des conversion ISO, UTF-8 ?
SVP, là je cale...
Marsh Posté le 12-11-2009 à 14:26:58
Tu as vérifié l'encodage de tes fichiers !??
Marsh Posté le 12-11-2009 à 14:27:51
Ouais y'a un problème d'encodage de fichiers là, il faut qu'ils soient en utf-8 aussi
Marsh Posté le 12-11-2009 à 14:29:20
marche tres bien ca moi
Code :
|
Marsh Posté le 12-11-2009 à 14:33:12
Moi j'ai un truc du style :
Code :
|
Marsh Posté le 12-11-2009 à 14:37:22
Je verrais çà ce soir...
Merci, parce que là je désespère.
Marsh Posté le 12-11-2009 à 14:37:34
sinon pour ceux qui veulent pas se faire chié
Code :
|
Marsh Posté le 12-11-2009 à 14:40:51
FlorentG a écrit : filter_var garde trop de trucs |
oui mais t'as une url valide, apres c'est sur c'est moins joli
Marsh Posté le 12-11-2009 à 14:47:00
En réalité, il me faudrait les fonctions suivantes :
Normal --> UTF-8
ISO --> UTF-8
Normal --> "normal sans accents, sans majuscules sans espaces, sans ponctuations et avec un nombre de caractères limités" (pour le nom des dossiers et fichiers)
UTF-8 --> Normal
UTF-8 --> "Normal sans accents" (problème d'affichage dans certains logiciels)
J'utilisais les fonctions strtr et strtr_replace mais elle renvoie parfois des caractères "farfelus". Je cherche des fonctions stables, rapides et fonctionne sous différents hébergeurs pour un site qui me servira d'architecture.
Au cas où un génie des charsets passe par ici.
Marsh Posté le 12-11-2009 à 14:47:51
Normal ça existe pas Quelle différence entre normal et iso ? Tu veux peux-être dire ASCII ?
Marsh Posté le 12-11-2009 à 14:51:04
Oui (normal = différence ; ASCII = différence)
Marsh Posté le 14-11-2009 à 19:49:22
J'ai essayé vos solutions, sans succés...
J'ai toujours les mêmes caractères farfelus... (éé)
Un autre point de détails... Au cours de mes lectures j'ai fait la découverte de "UTF-8" et "UTF-8 sans BOM" pour le format des pages PHP.
Quelle est la différence ?
Pour le reste, je suis ouvert à tous vos conseils...
Marsh Posté le 17-11-2009 à 13:29:19
stealth35 a écrit : verifie bien l'encodage natifs des fichiers |
stealth35 a écrit : |
kao98 a écrit : Tu as vérifié l'encodage de tes fichiers !?? |
FlorentG a écrit : Ouais y'a un problème d'encodage de fichiers là, il faut qu'ils soient en utf-8 aussi |
Tu le fais exprès ou quoi ?
Marsh Posté le 07-04-2010 à 20:54:14
OK, j'ai réussi à me dépatouiller avec les encodages.
1. J'utilise Notepad ++ et choisi l'encodage souhaité dans les options d'encodage (UTF-8 semble être la meilleure solution, il existe plus puissant mais plus lent ; UTF-16 et UTF-32). Il fallait préciser où définir l'encodage (en ligne de commande, dans l'éditeur de texte, dans le code PHP, dans le code HTML)...!
2. L'affichage de mes codes est maintenant correcte. Penser à indiquer le charset utilisé dans l'en-tête HTML (exemple : <META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=utf-8"> )
Désolé pour le retard, le problème est résolu.
Un lien utile est certainement connu : http://electron-libre.fassnet.net/utf8.php (en bas de page)
Marsh Posté le 13-04-2010 à 21:29:43
En tout cas jusque la sortie officielle de PHP 6, le noyau de PHP travaille en ISO. J'ai eu le même problème. Il faut juste donner des variables ISO en entrées que tu pourras remettre en utf8 par la suite pour que ce soit transparent.
Marsh Posté le 14-04-2010 à 10:10:35
the_bigboo a écrit : En tout cas jusque la sortie officielle de PHP 6, le noyau de PHP travaille en ISO. J'ai eu le même problème. Il faut juste donner des variables ISO en entrées que tu pourras remettre en utf8 par la suite pour que ce soit transparent. |
PHP6 c'est abandonnée
Marsh Posté le 14-04-2010 à 16:31:22
ReplyMarsh Posté le 14-04-2010 à 17:56:02
stealth35 a écrit : PHP6 c'est abandonnée |
L'implémentation UTF8 telle que prévue est abandonnée
Marsh Posté le 14-04-2010 à 20:09:03
drasche a écrit : |
oui, elle est dans une autre branch, et de ce fait la branch php6 n'existe plus
http://svn.php.net/repository/php/php-src/branches/
Marsh Posté le 14-04-2010 à 20:34:11
Je connais les détails techniques de l'histoire
Et elle existera à nouveau, c'est juste temporaire.
Marsh Posté le 14-04-2010 à 20:49:41
drasche a écrit : Je connais les détails techniques de l'histoire |
vu dans se sens la oui, PHP 7 aussi
Marsh Posté le 06-10-2009 à 18:10:15
J'utilise la fonction strtr pour donner un nom à mes forums à partir du sujet.
Exemple :
- sujet = Quel temps fait-il aujourd'hui ?
- dossier du sujet = quel_temps_fait_il_aujourd_hui__
Avec les accents (é, à, è, etc.), la fonction suivante me renvoie des caractères farfelus.
Exemple :
- é devient a_
- à devient a_
- etc.
Quel est le problème ? J'utilise le jeu de caractères UTF-8
Message édité par alx067 le 07-04-2010 à 20:56:04