🔧 Icones et utf-8 🤡
Caractères utf-8
un certains nombre de caractères utf8 que j'utilise couramment sont ici
J'utilise aussi ces liens :
www.fileformat.info csbruce.com www.utf8icons.comCaractères bizarres et mysql
Voici une liste de caractères que j'utilise pour mes tests quand je fais des "post".
utf8 dans mysql
Un bon article que j'ai trouvé sur mathiasbynens.be
TLDR: utf8mb4 existe depuis MySQL 5.5.3 (début 2010) et je vous suggère de n'utiliser que cet encodage, en particulier pour des raisons de sécurité.
Si vous utilisez php pour lancer de requêtes SQL alors je vous conseil très vivement d'utiliser la fonction addslashes pour les INSERT/UPDATE/DELETE.
Un piège dans lequel je suis tombé !
Un client ne retrouvait pas un nom accentué dans sa base de donnée.
Je pense qu'il avait lui même fait un copier/coller de ce nom à partir d'un document ( web, pdf, ... ? )
Par exemple, voyez vous une différence visuelle entre ces deux "a" accentués :
"àà"
Sur mes navigateurs (chrome, firefox, Edge, IE), je ne vois aucune différence.
Pourtant ce sont deux encodages différents, ces deux caractères ont des aspects différents
dans mon éditeur préféré : notepad++
ces deux "a" ressemblent à cette image :
. Le deuxième a est plus petit que le premier.
Dans vscode et d'autres éditeurs on ne voit aucune différence :-\
Pour reproduire, soit vous pouvez copier/coller les deux a accentués plus haut,
soit vous pouvez utiliser cette url:
https://www.google.com/search?q=%C3%A0%20or%20a%CC%80
Le problème est le même avec, entre autre, ces caractères: àâãá éèêÉ ïî ñÑ óôö üÜÜ que j'ai trouvé et remplacé dans la base de donnée de mon client.
Puis, j'ai ajouté une fonction de conversion php avant des les insert et les update sql :
strtr( $string, $aCh ); qui utilise le tableau de conversion suivant :
$aCh=array( 'à' => 'à' , 'â' => 'â' ,'ã' => 'ã' , 'á' => 'á' , 'é' => 'é' , 'è' => 'è' ,'ê' => 'ê' , 'É' => 'É' , 'ï' => 'ï' , 'î' => 'î' , 'ñ' => 'ñ' , 'Ñ' => 'Ñ' , 'ó' => 'ó' , 'ô' => 'ô' , 'ö' => 'ö' , 'ü' => 'ü' , 'Ü' => 'Ü' ); // j'imagine qu'il faut traiter les caractères // qui contiennent un code allant de 768 à 790 au moins mais comment en être certain ? // On peut aussi utiliser cette fonction de test // function my_character2numeric($t){ // $convmap = array(0x0, 0x2FFFF, 0, 0xFFFF); // return mb_encode_numericentity($t, $convmap, 'UTF-8'); // } // à,á,â,ã,ā,a̅,ă,ȧ,ä,ả,å,a̋,ǎ,a̍,a̎,ȁ,a̐,ȃ,a̒,a̓,a̔,a̕,
Conclusion : recherchez dans vos bases de données les caractères ayant un code de "768" à "790" et peut-être d'autres. Et merci notepad++ !
📝 Les Articles.
Le symbole "🔧" (clé plate) indique les articles techniques.
- ♥♠♣♦ Jeu de solitaire
- 🤔 Jeu de syllabes
- ▦ Jeu de sudoku
- 💣 Jeu du démineur
- 🧠 Jeu de mémoire
- 🟥 Jeu samegame
- ✅ Application todo
- 😎 Nicolas Boileau
- 👋 Intelligence artificielle
- 😉 Liens sympas
- 😀 Avantages des pwa
- 🔧 Classement lighthouse 💪
- 🔧 Liens techniques
- 🔧 Icones et utf-8 🤡
- 🔧 La guerre internet
- 🔧 Mises à jour des pwa
- 🔧 Morceaux de programmes
- 🔧 Formulaires de login
- 🔧 Internationalisation 😎
- 😀 À propos de ce blog
- 🎮 Les liens vers les jeux et applications