Nouveau sur le forum ? Voici votre case départ pour bien débuter.

Liens contextuels :

Auteur
papa22
# 19 Feb 2008 - 15:00:05
Citer
18 Posts
Bonjour,

Je travaille sur des bases pays , region et ville au format Mysql et UTF8

Problème :
Lorsque je récupère un nom de région par exemple : Costa calida en espagne

il est pris au format UTF8 :Costa Cálida dans la base

il reste à ce format pour etre lu : Costa Cálida dans ma page

Mais quand il passe par l'url en variable pays=Espagne&region=Costa%20Cálida&place=&loc=
et que je le récupère pour interroger ma base
j'ai une erreur Mysql car soit ma variable part au format

SELECT regioncode FROM inter_region WHERE langagecode='fr' AND regionname='Costa Cálida'

Soit je met un
 $region=utf8_encode($region);
avant d'envoyer la requète
et dans ce cas ma variable devient

SELECT regioncode FROM inter_region WHERE langagecode='fr' AND regionname='Costa Cálida'

Quelqu'un peut-il m'aider dans ce casse tête SVP

Merci

Hugues
Modifié par papa22 (19 Feb 2008 - 15:01)

^
Florent V.
# 19 Feb 2008 - 15:22:56
Citer
On va manger des chips.
Modérateur
11962 Posts
Bonjour,

papa22 a écrit :
il est pris au format UTF8 :Costa Cálida dans la base

Ben non, ça c'est pas de l'UTF-8. La base est peut-être en UTF-8, mais dans ce cas tu n'en tires pas partie car tu remplaces les caractères non ASCII par l'entité caractères (&225;) correspondante.

http://www.covertprestige.net 
^
papa22
# 19 Feb 2008 - 16:00:52
Citer
18 Posts
Florent V. a écrit :
Bonjour,


Ben non, ça c'est pas de l'UTF-8. La base est peut-être en UTF-8, mais dans ce cas tu n'en tires pas partie car tu remplaces les caractères non ASCII par l'entité caractères (&225;) correspondante.


Ben oui, d'accord, mais ça m'aide pas beaucoup.

La base est bien en uft-8 mais elle s'affiche (&225;) dans l'interface mysql
le code de page dans IE s'affiche aussi comme ça
question sachant que je ne fais aucun changement à part ces conversions automatiques comment est-ce que je peux reecrire ma variable passée par l'url lorsqu'elle part vers mysql pour qu'elle soit de format identique à celui de ma base d'ou elle vient

je repette que

utf8_encode($region);


ne fonctionne pas ou au moins pas tout seul

Merci d'un coup de pouce

Hugues

^
Florent V.
# 19 Feb 2008 - 17:23:17
Citer
On va manger des chips.
Modérateur
11962 Posts
Alors:

1. À tout hasard, as-tu lu [Pré-requis] Notions de base sur l'encodage des caractères?

2. Ta base est en UTF-8, mais pas les données dedans (enfin, techniquement c'est de l'UTF-8 mais pour enregistrer un caractère non-ASCII tu n'utilises pas la valeur UTF-8 correspondante mais une entité caractère et donc uniquement des caractères ASCII). Il serait peut-être plus simple de travailler avec les données en UTF-8 dans la base, non?

3. utf8_encode() convertit une chaîne ISO-8859-1 en UTF-8. Donc ça ne va pas t'aider beaucoup non plus.

4. Il faudrait que tu trouves une fonction qui remplace les caractères non-ASCII par l'entité caractère équivalente. Je ne sais pas trop ce qu'il existe en PHP.

5. De plus, ça risque d'être difficile de passer &255; ou tout autre entité en paramètre d'une URL... je ne sais pas trop si ça passe.

6. Enfin, en général on ne fait pas une sélection en recherchant une chaine de caractères, mais en faisant un tri sur un identifiant numérique. Donc en GET tu aurais une URL du type:
script.php?pays=6&region=28

Tu n'as pas de table de tes régions avec un identifiant par région?
Modifié par Florent V. (19 Feb 2008 - 17:23)

http://www.covertprestige.net 
^
papa22
# 19 Feb 2008 - 17:59:46
Citer
18 Posts
Je commence à comprendre le PB

pour repondre à tes questions

les bases ne m'appartiennent pas elles sont mises à ma dispo par un autre site avec plusieurs milliers d'enregistrements

Je ne peux pas les remanier car elles me servent à communiquer avec le site d'origine

Il y a bien une possibilité d'utiliser un code par pays, par region ... mais je cherchais jsutement à faire des jolis liens sans Codepays=A125 mais avec ,france,alsace,strasbourg en url rewriting

donc en effet si j'ai bien compris tes explications, je suis à la recherche de la formule magique qui me transformera en phpCosta Cálida en ascii Costa Cálida

^
Florent V.
# 19 Feb 2008 - 18:11:02
Citer
On va manger des chips.
Modérateur
11962 Posts
papa22 a écrit :
donc en effet si j'ai bien compris tes explications, je suis à la recherche de la formule magique qui me transformera en phpCosta Cálida en ascii Costa Cálida

Oui, sous réserve que:
- la fonction existe;
- il soit possible de passer &225; ou toute autre entité caractère dans une URL, ce dont je ne suis pas sûr.

http://www.covertprestige.net 
^
papa22
# 20 Feb 2008 - 08:33:24
Citer
18 Posts
Florent V. a écrit :

- il soit possible de passer &225; ou toute autre entité caractère dans une URL, ce dont je ne suis pas sûr.


ça ce n'est pas un problème puisque que je peux faire ma fonction après le passage de l'url et juste avant de d'envoyer la requète mysql,

Tu ne sais pas où je peux trouver ce type de fonction php (forum actif en français de préférence) ?

^
Florent V.
# 20 Feb 2008 - 10:19:55
Citer
On va manger des chips.
Modérateur
11962 Posts
Dans la documentation PHP?
http://www.php.net/docs.php

Je suis une bille en PHP, mais quand j'en fais un peu c'est ça que je consulte.

Dans les points de départ intéressants:
http://www.php.net/manual/fr/ref.filter.php
http://www.php.net/manual/fr/ref.url.php
http://www.php.net/manual/fr/ref.strings.php

Et notamment:
http://www.php.net/manual/fr/function.htmlentities.php
http://www.php.net/manual/fr/function.htmlspecialchars.php

http://www.covertprestige.net 
^
papa22
# 20 Feb 2008 - 10:33:50
Citer
18 Posts
merci et à bientôt

Hugues

^
Heyoan
# 21 Feb 2008 - 20:24:21
Citer
Un p'tit Kiwiz Coca ?
Modérateur
2056 Posts
Salut,

tu pourrais regarder du côté de urlencode et de urldecode.

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 ?

http://www.heyoan.com 
^

référencesLes 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

Powered by Phedio v3.7.9 © dew
Contacter l'administrateur - 10.9 ms - Charte