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

majuscules sans accents

6 réponses
Avatar
paul POULAIN
Bonjour,

je voudrais savoir comment mettre en majuscule des mots, mais en éliminant
les accents.
Donc :
éliminer => ELIMINER et eliminer => ELIMINER.

la fonction uc() fonctionne "trop bien" pour ce que je veux faire (remplir
un hachage de mots, sans tenir compte des erreurs de frappe sur les
accents)

Merci
--
Paul

6 réponses

Avatar
Nicolas George
paul POULAIN wrote in message <d76lhe$2nen$:
je voudrais savoir comment mettre en majuscule des mots, mais en éliminant
les accents.
Donc :
éliminer => ELIMINER et eliminer => ELIMINER.


J'ai déjà eu à faire ça, j'ai utilisé la forme normalisée KD, et éliminé
les caractères combinants :

use utf8;
use Unicode::Normalize;

$w = NFKD $w;
$w =~ s/pM//g;

Avec ça, ça devrait même éliminer les esprits sur un texte en grec ancien.

Avatar
nicolas
On Fri, 27 May 2005 10:25:18 +0200, paul POULAIN wrote:

je voudrais savoir comment mettre en majuscule des mots, mais en éliminant
les accents.
Donc :
éliminer => ELIMINER et eliminer => ELIMINER.


Note : il faut les accents sur les capitales en français, mais
visiblement tu fais autre chose que taper un texte en français. ;-)

nicolas patrois : pts noir asocial
--
SPROTCH !

P : Non, y a rien de plus immonde que de chier sur la moquette...
M : Pas d'accord... A pire... Chier sous la moquette...
H : ?!!

Avatar
Nicolas George
nicolas wrote in message
:
Note : il faut les accents sur les capitales en français, mais
visiblement tu fais autre chose que taper un texte en français. ;-)


Il y a de bonnes raisons de vouloir éliminer les accents d'un texte. La
principale est que les utilisateurs sont souvent peu rigoureux, et ne
mettent parfois pas les accents, ou seulement certains, ou se trompent de
sens, etc. Pour des trucs comme des moteurs de recherche, il est bon d'avoir
une certaine tolérance aux imprécisions des utilisateurs, et la tolérance
aux problèmes d'accents est à la fois facile à obtenir et plutôt efficace.

Avatar
paul POULAIN
Nicolas George wrote:

nicolas wrote in message
:
Note : il faut les accents sur les capitales en français, mais
visiblement tu fais autre chose que taper un texte en français. ;-)


Il y a de bonnes raisons de vouloir éliminer les accents d'un texte. La
principale est que les utilisateurs sont souvent peu rigoureux, et ne
mettent parfois pas les accents, ou seulement certains, ou se trompent de
sens, etc. Pour des trucs comme des moteurs de recherche, il est bon
d'avoir une certaine tolérance aux imprécisions des utilisateurs, et la
tolérance aux problèmes d'accents est à la fois facile à obtenir et plutôt
efficace.
et ben voilà, tout est dit ;-)

d'ailleurs, un comportement qu'il m'a fallu un certain temps pour assimiler,
c'est que mySQL ignore, lui, les accents.
Et que donc, si on a une clef primaire sur le mot, on ne pourra pas insérer
"éliminer" si on a déjà "eliminer". Comme c'est justement ce que je veux
faire, j'ai besoin d'éliminer les accents ;-)

--
Paul


Avatar
Nicolas George
paul POULAIN wrote in message <d7ehbq$2op8$:
d'ailleurs, un comportement qu'il m'a fallu un certain temps pour assimiler,
c'est que mySQL ignore, lui, les accents.
Et que donc, si on a une clef primaire sur le mot, on ne pourra pas insérer
"éliminer" si on a déjà "eliminer".


Euh, ça m'étonnerait vraiment que MySQL ait vraiment ce genre de bug, car ce
serait assez gravissime. Le plus probable est que le type de la colonne de
la clef primaire est un type prévu pour ignorer les accents.

Avatar
Emmanuel Florac
Le Mon, 30 May 2005 09:23:37 +0000, Nicolas George a écrit :


Euh, ça m'étonnerait vraiment que MySQL ait vraiment ce genre de bug, car ce
serait assez gravissime. Le plus probable est que le type de la colonne de
la clef primaire est un type prévu pour ignorer les accents.


Ou alors il y a un bin's dans les locales. C'est en général assez
chiant, par exemple pour avoir les accents qui marchent dans oracle il
faut faire une invocation assez mystérieuse du genre

$ENV{NLS_LANG}='french_france.WE8ISO8859P15';

Ou encore

$dbh->do("ALTER SESSION SET NLS_LANG = 'french_france.WE8ISO8859P15'");

--
Dix grammes d'abstraction valent des tonnes de bricolage.
Loi de Booker.