Liens contextuels :
| Auteur | |
|---|---|
| SpaceCowboy | # 01 May 2008 - 17:34:34 |
| 29 Posts |
Il existe tout un tas de fonction, mais apparament en UTF8 ca ne fonctionne pas très bien. Une fonction trouvé sur expreg.com <?php Je crée un fichier avec le notepad, j'enregistre en UTF8 (le codage). Donc le fichier et les données sont en UTF8 ? J'obtient ... Je bloque vraiment ... Voila la page au complet : <?php Modifié par SpaceCowboy (01 May 2008 - 17:36) |
| Florent V. | # 01 May 2008 - 18:21:32 |
On va manger des chips. Modérateur 11976 Posts |
Et le rapport avec la choucroute? Comme ce sujet n'a apparemment rien à voir avec HTML, je le déplace dans le salon Encodage et internationalisation. Pour le reste... $ch = strtr($str,Il te manque un caractère dans la suite des caractères de remplacement. |
| Heyoan | # 01 May 2008 - 18:35:51 |
Un p'tit Kiwiz Coca ? Modérateur 2057 Posts |
Salut SpaceCowboy ,je pense que même avec le bon nombre de caractères ça ne pourra pas fonctionner car l'encodage de l'utf-8 est multi-octets et donc un caractère nécessite 2 octets (qu'on m'arrête si je me gourge ) alors que la fonction strtr remplace caractère par caractère. Une solution qui devrait marcher :page_utf8.php (encodée en utf-8) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> page_iso.php (encodée en iso-8859-1) <?php D'autres solutions possibles (notamment un seul tableau dans la fonction avec des paires ) en regardant le lien...A+ Modifié par Heyoan (01 May 2008 - 18:41) J'ai beau tourner ça dans tous les sens, c'est quand même bizarre qu'on existe au lieu de pas exister... non ? |
| Florent V. | # 01 May 2008 - 18:52:19 |
On va manger des chips. Modérateur 11976 Posts |
Heyoan a écrit : Ben alors je t'arrête. L'encodage d'un caractère en UTF-8 prend de 1 à 4 octets suivant les cas. Les caractères ASCII sont codés sur un octet, et tous les autres sur 2 à 4 octets (plutôt 2 pour les caractères européens, 3 ou 4 pour les kanji du japonnais, etc.). Heyoan a écrit : Tu te contredis. Si la fonction remplace caractère par caractère, elle devrait être capable de remplacer un caractère par un autre quel que soit le nombre d'octets du caractère de départ et le nombre d'octets du caractère d'arrivée. C'est uniquement si elle remplace octet par octet que cela pose problème (ou bien s'il y a un autre problème de support d'UTF-8 un peu plus subtil ).Je tenterais l'utilisation de strtr avec un tableau de correspondance passé comme variable. |
| Florent V. | # 01 May 2008 - 19:16:44 |
On va manger des chips. Modérateur 11976 Posts |
Hop, à tester:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" Si on ne lui passe pas un tableau de correspondance en paramètre pour les remplacements, mais deux chaines de caractères, strtr a l'air de travailler octet par octet, effectivement. On le voit avec les fonctions ote_accent_1 et ote_accent_1_bis (dans la deuxième, on remplace des caractères faisant chacun deux octets (en UTF-8) par des caractères de deux octets également. Donc ça marche (quoi que ça puisse poser problème à d'autres caractères qui utiliseraient un de ces deux octets!). Mais s'il y a une différence entre le nombre d'octets d'un caractère de départ et de son caractère de remplacement, c'est la merde. En passant par un tableau ça marche bien. |
| Heyoan | # 01 May 2008 - 19:19:28 |
Un p'tit Kiwiz Coca ? Modérateur 2057 Posts |
Florent V. a écrit :Arf !Florent V. a écrit :C'est qu'est-ce que je voulais dire (double arf !) mais je ne suis pas sûr non plus que ça fonctionne comme ça...J'ai beau tourner ça dans tous les sens, c'est quand même bizarre qu'on existe au lieu de pas exister... non ? |
| Gofromiel | # 09 May 2008 - 18:57:50 |
| 3 Posts |
@SpaceCowboy: Si ça peut aider, j'ai crée une fonction qui supprime les accents et transforme les ligatures comme "œ" en "oe" elle fonctionne avec n'importe quel type d'encodage (utf-8 aussi donc) Tu pourras la trouver sur mon blog: Supprimer les accents des caractères accentués en PHP |
Les références web : openweb.eu.org - opquast.com - webmaster-hub.com - webrankinfo.com - salemioche.net - web-pour-tous.org - webonorme.org
Nos partenaires : Editions Eyrolles - Location vacances France - Location vacances Europe
Nikozen : Hébergement - Réalisation : Alsacreations.fr



) alors que la fonction
) en regardant le lien...
!
!) mais je ne suis pas sûr non plus que ça fonctionne comme ça...