Merci je suis ravi;
J'espère voir le résultat!
jesus2099 . 08/08/05 18:07
Il y a beaucoup de bonnes choses dans ta page mais je n'ai pas reussi a resoudre mon probleme...
Je fais passer de javascript vers PHP une string en langue etrangere en l'encodant avec la fonction escape.
J'ai donc un truc du style :
var str=escape(stranger)
"http://www.popo.com/popo.php?s="+str
Mais la chaine arrive sur ma page
popo.php de la forme : %u05DE%u05E1%u05E2%u05D3%u05D4
J'ai utilise ta super fonction unicode_decode qui permet d'afficher cette chaine et ca marche.
Mais comment je peux faire si je veux manipuler cette chaine par exemple l'envoyer en query string de google? Il me faudrait une chaine du genre:
%AA%D7%9E%D7%95%D7%A0%D7%95%D7%AA
Je suis un peu perdu donc si quelqu'un a une idee...
Est-ce que tu veux faire ça en PHP ou en Javascript?
En Javascript, c'est pas génial, tu es obligé de fabriquer une moulinette.
Par contre en PHP, comme je l'ai dit (mais c'est le fouillis), tu peux utiliser un truc comme ça:
$urlparam= rawurlencode(unicode_decode($_REQUEST["s"]));
Ou, si tu veux que les espaces soient convertis en «+» plutôt qu'en «%20»: urlencode().
jesus2099 . 10/08/05 14:22
J'ai fini par trouver la bonne fonction javascript :
encodeURIComponent
Elle n'est valide que pour IE 5.5+, Netscape 6+ et Mozilla...
Merci Ano (?)
Grâce à toi j'ai enrichi un peu le message – qui devient de plus en plus charabia!
PS: Tu peux laisser un pseudo et/ou un lien vers ton site, en choisissant de laisser un commentaire avec le réglage Other ou Autre plutôt que Anonymous ou Anonyme, si tu veux.
jesus2099 . 10/08/05 17:56
salut
je cherchais à transmettre des valeurs saisies dans un formulaire via javascript (pour une application en ajax) dans une url pour être ensuite interprété par un script PHP.
Franchement l'encodage des caractères ca me dépasse totalement : je galère systématiquement là-dessus.
hé bien je crois que j'ai écrit la bonne fonction pour la situation qui me concerne :
function encodeMonTexte(texte) {
URIencode = encodeURIComponent(texte);
retour = URIencode.replace(/'/g, "\\'");
return(retour);
}
voilà.
Merci Jérôme, voilç qui pourra servir à autrui ! (^_^)
Jérôme M. ?
jesus2099 . 21/08/06 01:03
Merci à Jérome & bien sur à jesus2099, car cette fonction
function encodeMonTexte(texte) {
URIencode = encodeURIComponent(texte);
retour = URIencode.replace(/'/g, "\\'");
return(retour);
}
m'a vraiment servi !!!
Baudouin
Salut, grace à toi je viens de m'apercevoir que mon nettoyage en php de code alphanumérique ne marche pas si la variable est "ça 2 "_'-+*/²&$ RFC1738 エンコーディング tiếng Việt"
echo ereg_replace( '[^a-z0-9_]', '', "ça 2 "_'-+*/²&$ RFC1738 エンコーディング tiếng Việt" );
résultat: a2rfc17381245612531124671254012487124511253112464ti7871ngvi7879t
si je fais le même traitement en javascript ça marche.
var chn = "ça 2 "_'-+*/²&$ RFC1738 エンコーディング tiếng Việt";
var exp = RegExp( "[^a-z0-9_]", "g" );
alert( chn.replace( exp, '' ));
résultat:
a2_rfc1738tingvit
mais mon but est d'avoir ce même résultat en php car parfois je ne passe pas par le javascript pour mon nettoyage.
Aurais tu une solution ?
Laurent
Oui, j'ai une solution :-)
En fait, chez moi ça marche mais le truc c'est que tu dois avoir des &xXXXX; dans ta chaîne, à la place des caractères spéciaux.
En fait je ne pense pas que tu fasses directement ereg_replace( '[^a-z0-9_]', '', "エンコーディング" );. Je pense que tu fais plutôt ereg_replace( '[^a-z0-9_]', '', $str ); et que tu récupères $str de je ne sais où.
Donc il faut que tu tranforme tes &xXXXX; en caractères avant de faire le ereg_replace(). Il existe une fonction pour ça : html_entity_decode($str, ENT_COMPAT, "UTF-8").
Mais si, comme dans mon PHP, tu as un bug (cannot yet handle MBCS), tu peux utiliser la fonction de remplacement qui est proposée dans la page du bug (bug #25670).
Voici une démo de ce que tu veux faire : encodeLaurent.php (source)
PS. juste au cas où. Si tu veux aussi garder les lettres majuscules, tu peux utiliser ereg_replace('[^a-zA-Z0-9_]', ...
PPS. Dis-moi quand je pourrais supprimer encodeLaurent.*
jesus2099 . 19/02/07 15:05
c'est super merci beaucoup
Ta fonction unicode_decode() est aussi utile que simple
Merci ça marche comme ça mais ce n'est pas correct, pourquoi ?
parceque ça ne converti pas ta chaine $strhtml exactement comme $str.
Dans le traitement telle que je te l'ai donné ça marche uniquement.
D'ailleurs nombre de personne on réécrit la fonction html-entity-decode
voir http://www.php.net/manual/fr/function.html-entity-decode.php
je vais me faire ma fonction aussi (je te la posterai qd elle sera au point si tu le veux).
Je te remerci de m'avoir répondue, tu peux effacer encodelaurent.
Bonjour,
J'utilise un formulaire qui renvoie les $_POST[""] sur la même page et les réaffiche dans leur champs texte. Je voudrais afficher les valeurs telles que je les ai saisies et non pas avec les caractères au format "URL" (pour ensuite 're-submit' au bon format et réafficher sans les caratères spéciaux).
Comment puis-je faire ?
Merci,
Gwendal.
Bonjour, j'ai bien regardé toute la page, mais je n'est pas trouvé ce que je cherchais:
A partir d'une requete Ajax, je transmet des informations encodées par escape à mon fichier php.
Je reçois donc des caractères du type %u30B8. Le problème est que je n'arrive pas à les décoder, et j'ai forcément besion de les décoder (je dois comparer si 2 chaînes sont identiques). Y'a t-il un moyen de le faire?
merci
Salut tadkozh,
Ma page est un peu en vrac, mais il est bien écrit dedans, comment transformer les %uXXXX en caractères unicode. Il faut utiliser une fonction vachtement bien faite, par un anonyme : unicode_decode.
Et ça marche très bien! :)
Bonne continuation!
jesus2099 . 28/05/07 01:31
Bonjour Jesus2099,
est-il possible de réutiliser votre fonction "conversionUnicode(texte)" de votre page "goodies_UUTUHC" ? (et la modifier pour les besoins de ma page ?) J'aimerai l'intégrer dans une console de saisi de kana pour obtenir leur code utf-8 rapidement.
Je peux vous envoyer le code de la console si vous le désirez.
Merci de me répondre et bonne continuation, votre site m'a beaucoup aidé (ça faisait une dizaine d'heure que j'étais sur la programmation de ma console et votre code est très pratique et beaucoup plus court que le mien).
Cordialement,
Keanjyto.
Avec plaisir Keanjyto.
Je réponds oui à l'ensemble de tes questions. (^_^)
Note bien la nouvelle adresse de J2_UUTUHC, dans le message, plus haut.
jesus2099 . 30/09/08 13:17
Salut Jesus2099,
(si je peux me permettre de vous tutoyer à partir de maintenant)
je vais t'embêter encore un peu ;)...
Peux-tu m'expliquer cette ligne de ton code (j'ai pas mal cherché mais ça reste obscur pour moi ^^') :
return((c == 38)? '&' : ((c > 127)? '&#'+c+';' : n));
J'ai aussi mis en ligne ma console ici : 'http://keanjyto.ifrance.com/console_jap_v2.php'. Ceux qui le veulent peuvent réutiliser le code.
A l'origine, j'avais voulu la concevoir pour des raisons pratiques pour mon projet de japonais, mais maintenant je pense qu'elle est suffisamment aboutie pour pouvoir servir à d'autres personnes (grâce à toi).
A la prochaine !
Cordialement,
Keanjyto.
Va pour le tutoiement ! (^_^)
c est le caractère saisi. Si c est un & (ampersand, 38 en décimal *), alors on remplace & par &.
Si on ne faisait pas ça, le code généré ne serait pas conforme HTML car & est un caractère spécial HTML ne pouvant être utilisé seul, sans code;.
Pour constater ce que je dis, tu peux essayer de valider une page contenant le texte Coucou, c'est moi & co. puis Coucou, c'est moi & co..
Seule la deuxième sera valide.
* 26 en hexa, 38 en décimal — J'ai travaillé ici en décimal, c'est au choix. Si j'écrivais le script aujourd'hui je le ferais putôt en hexadécimal, histoire de mieux coller aux codes unicodes qui sont toujours vu en hexa par usage (ici: \u0026). D'ailleurs si tu veux, je te dirais quand j'aurais fait ce changement.
PS. Merci pour le lien vers mon site ! Cependant, utilise plutôt l'adresse du site, sans "fr/" à la fin. (^_^;)y
jesus2099 . 01/10/08 09:58
Il manque un morceau à mon explication.
Si c > 127 (en gros on dépasse du iso-8859-1) alors on affiche son équivalent html entities décimal &#c;.
Voilou.
PS. Cela dit, il est toujours mieux (plus lisible et pas besoin de moulinettes) d'écrire des pages en utf-8 et d'utiliser des caractères unicode plutôt que ces HTML Entities.
jesus2099 . 01/10/08 10:02
I found this site using [url=http://google.com]google.com[/url] And i want to thank you for your work. You have done really very good site. Great work, great site! Thank you!
Sorry for offtopic
C'est fini, tu peux plus lacher des komz ! Trop tard.
Si si :) Moi ça m'a beaucoup servi :)
Merci beaucoup, tu m'as évité des heures de galère :)