Une (autre) histoire d'accents

Le
Pascale
Je ne sais pas pourquoi, mais les histoires d'accents me poursuivent (:

J'ai un magnifique formulaire où les gens saisissent leur nom (pas que ça,
évidemment).
Pour faire quelque chose de propret, j'avais décidé de mettre le nom en
capitales, quelque chose du genre :

$nom=trim($_POST['nom']);
if ($nom!='')
{$_SESSION['nom']=strtoupper($nom);}

Le problème est bien sûr la mise en majuscule des caractères accentués
J'ai testé mon formulaire après avoir ajouté cette fonction : tout allait
bien, les é devenaient É, les à devenaient À, etc. Je demande à mon homme
de tester il me dit que ça ne marche pas, les é restent é, etc.
Je me dis, bizarre, faut que je réessaye : pas de problème, les lettres
accentuées passent sans problème en majuscule.
Je reteste aujourd'hui (en utilisant le même nom) : ça ne marche pas, les
lettres accentuées restent en minuscule.
Le manuel dit que ça ne marche jamais
Le PHP aurait-il un côté farceur qui m'aurait échappé ? (:

--
Pascale
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Olivier Miakinen
Le #41668

Le problème est bien sûr la mise en majuscule des caractères accentués...
J'ai testé mon formulaire après avoir ajouté cette fonction : tout allait
bien, les é devenaient É, les à devenaient À, etc. Je demande à mon homme
de tester... il me dit que ça ne marche pas, les é restent é, etc.
Je me dis, bizarre, faut que je réessaye : pas de problème, les lettres
accentuées passent sans problème en majuscule.
Je reteste aujourd'hui (en utilisant le même nom) : ça ne marche pas, les
lettres accentuées restent en minuscule.


Tout ceci dépendra de plusieurs paramètres, en particulier le charset
utilisé pour coder la page, et les informations de localisation :
http://fr2.php.net/manual/fr/function.setlocale.php
(LC_CTYPE).

Le manuel dit que ça ne marche jamais...


Non, il dit que ça ne marche pas avec la configuration par défaut ("C")

Le PHP aurait-il un côté farceur qui m'aurait échappé ? (:


Ah oui, certainement ! :-D

Pascale
Le #41663
Olivier Miakinen news:474f0f1d$:

Tout ceci dépendra de plusieurs paramètres, en particulier le charset
utilisé pour coder la page,


iso-8859-15

et les informations de localisation :
http://fr2.php.net/manual/fr/function.setlocale.php
(LC_CTYPE).


(et c'est là qu'on entend un grand cri de détresse venant de mon humble
personne)
Le « warning » me plonge dans un abîme de perplexité... (:

Non, il dit que ça ne marche pas avec la configuration par défaut ("C")


Oups, je promets d'apprendre à lire...

Le PHP aurait-il un côté farceur qui m'aurait échappé ? (:
Ah oui, certainement ! :-D



Ce qui est dit dans le warning pourrait-il expliquer le comportement
aléatoire de la fonction strtoupper ? Ou bien j'ai encore tout compris de
travers...
Pour information, que le serveur de notre hébergeur est un serveur Apache
mais sous Linux...

« Y a quèqu'chose qui cloche là-d'dans,
J'y retourne immédiatement »

--
Pascale


Pascale
Le #41662
Il semble (je suis prudente, hein) qu'en mettant
setlocale(LC_CTYPE, 'french');
cela fonctionne.

Olivier, tu es mon sauveur multi-récidiviste !

--
Pascale
Olivier Miakinen
Le #41229
Il semble (je suis prudente, hein) qu'en mettant
setlocale(LC_CTYPE, 'french');
cela fonctionne.


Bravo !

Attention cependant, si un jour tu changes d'hébergeur tu devras
peut-être remplacer ce 'french' par autre chose (par exemple 'fr'
ou 'fr-FR' ou encore 'fr_FR', voire 'fra' ou 'fre')... La plus
grande anarchie règne en la matière entre Windows, Linux, et les
différentes variétés d'Unix.

Olivier, tu es [...] multi-récidiviste !


Chut ! On ne sait jamais, Sarko pourrait nous lire...

Olivier Miakinen
Le #41228
Il semble (je suis prudente, hein) qu'en mettant
setlocale(LC_CTYPE, 'french');
cela fonctionne.


Pendant que j'y pense... tu dis être en ISO-8859-15. Du coup, je parie
que les conversions suivantes ne fonctionneront pas (mais que ce seront
les seules) :
½ -> ¼
ÿ -> ¾
¨ -> ¦
¸ -> ´
En effet, les caractères ¦, ¨, ´, ¸, ¼, ½ et ¾ sont dans ISO-8859-15
mais pas dans ISO-8859-1, toutes les autres lettres étant aux mêmes
emplacements dans les deux jeux de caractères.

Si tu as un peu de temps pour jouer avec le setlocale, essaye des trucs
du genre de '', 'french.ISO-8859-15' et ainsi de suite. Ou
alors cherche dans la doc (man setlocale ?) pour trouver la bonne syntaxe.

Pascale
Le #41226
Olivier Miakinen news:4750264f$:

Pendant que j'y pense... tu dis être en ISO-8859-15. Du coup, je parie
que les conversions suivantes ne fonctionneront pas (mais que ce
seront les seules) :
½ -> ¼
ÿ -> ¾
¨ -> ¦
¸ -> ´
En effet, les caractères ¦, ¨, ´, ¸, ¼, ½ et ¾ sont dans ISO-8859-15
mais pas dans ISO-8859-1, toutes les autres lettres étant aux mêmes
emplacements dans les deux jeux de caractères.

Si tu as un peu de temps pour jouer avec le setlocale, essaye des
trucs du genre de '', 'french.ISO-8859-15' et ainsi de
suite. Ou alors cherche dans la doc (man setlocale ?) pour trouver la
bonne syntaxe.


Pour ma culture personnelle, ça m'intéresse, mais honnêtement, je vais pas
m'y plonger tout de suite, car ce que je mets en capitales, ce sont
simplement des noms propres de personnes. Bon, je sais bien qu'il peut y
avoir des noms exotiques, mais on verra. Je vais quand même faire quelques
tests (-:

--
Pascale

Pascale
Le #41227
Olivier Miakinen news:4750214e$:

Bravo !


Yapadkoi, tout le mérite t'en revient, si si si !

Attention cependant, si un jour tu changes d'hébergeur tu devras
peut-être remplacer ce 'french' par autre chose (par exemple 'fr'
ou 'fr-FR' ou encore 'fr_FR', voire 'fra' ou 'fre')... La plus
grande anarchie règne en la matière entre Windows, Linux, et les
différentes variétés d'Unix.


C'est bien possible en effet. J'ai consulté les liens donnés à partir du
manuel PHP, ça a effectivement l'air d'être un bintz pas croyable.
Dans un premier temps, j'avais mis 'fra' et cela ne fonctionnait pas, mais
je me doute bien qu'ailleurs, ça peut fonctionner...

Chut ! On ne sait jamais, Sarko pourrait nous lire...


C'est vrai, ça, faut faire gaffe, de nos jours...

--
Pascale

Olivier Miakinen
Le #41225

Pour ma culture personnelle, ça m'intéresse, mais honnêtement, je vais pas
m'y plonger tout de suite, car ce que je mets en capitales, ce sont
simplement des noms propres de personnes.


Messieurs M½BIUS et Pierre LOUÿS seront peut-être heureux que cela
fonctionne pour eux. Bon, je sais, c'est plutôt rare.

Je vais quand même faire quelques tests (-:


:-)

Pascale
Le #41223
Olivier Miakinen news:4750548a$:

Messieurs M½BIUS et Pierre LOUÿS seront peut-être heureux que cela
fonctionne pour eux. Bon, je sais, c'est plutôt rare.


C'est vrai, ça ne marche pas... Zut.
Dommage. J'ose pas imaginer la description du jardin de Pierre Louÿs
(puisque c'est de ça qu'il est question)... (o;
Comme tu dis, je vais essayer de voir si je trouve une syntaxe qui
fonctionnerait...

--
Pascale

Pascale
Le #41224
setlocale(LC_CTYPE, 'french.ISO-8859-15') fonctionne parfaitement, y
compris avec les ÿ, les ¨, les ½, les ç et autres joyeusetés !
Merci, m'sieur ! (o;

--
Pascale
Publicité
Poster une réponse
Anonyme