Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Une (autre) histoire d'accents

20 réponses
Avatar
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

10 réponses

1 2
Avatar
Olivier Miakinen

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

Avatar
Pascale
Olivier Miakinen <om+ écrivait
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


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

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

--
Pascale
Avatar
Olivier Miakinen
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...

Avatar
Olivier Miakinen
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.

Avatar
Pascale
Olivier Miakinen <om+ écrivait
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

Avatar
Pascale
Olivier Miakinen <om+ écrivait
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

Avatar
Olivier Miakinen

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 (-:


:-)

Avatar
Pascale
Olivier Miakinen <om+ écrivait
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

Avatar
Pascale
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
1 2