Pb contenu html en PHP - PHP - Programmation
Marsh Posté le 03-12-2010 à 11:37:35
vérifie que ton champs dans ta base de données utilise le même jeu de caractère que tes pages PHP/HTML
Marsh Posté le 03-12-2010 à 11:59:06
antac a écrit : vérifie que ton champs dans ta base de données utilise le même jeu de caractère que tes pages PHP/HTML |
j'ai vérifier mnt il remplace le accents par "?" ..
Marsh Posté le 03-12-2010 à 12:02:15
atout1 a écrit : |
mes pages html ont comme charset=iso-8859-1 et dans la base de données mes champs sont latin1_swedish_ci
Marsh Posté le 05-12-2010 à 14:13:53
Utilise str_replace pour remplacer les caractères accentués par le code ASCII (ex : "é"->"é" ) et ça devrait être bon
Marsh Posté le 05-12-2010 à 17:50:06
toughzaa a écrit : Utilise str_replace pour remplacer les caractères accentués par le code ASCII (ex : "é"->"é" ) et ça devrait être bon |
Ba oui c'est normal tout le monde fait ça, on peut aussi remplacer les accents en Javascript.
Ou alors mettre au point un nouveau langage codé et un cron qui décode le texte en base.
Y en a plein des solutions a chier comme ça
Faudrait avoir un minimum de connaissances avant de vouloir aider les gens, la tu fais tout sauf l'aider.
ps: je c'est un simple problème d'encodage, qui doit être règle correctement, pas en faisant d'horribles replaces.
Et pas d'htmlspecialchars avant d'insérer des données en base, c'est une pratique a bannir
Marsh Posté le 05-12-2010 à 19:42:34
A mon avis, c't'au niveau de son éditeur de texte qu'il se foire...
Fait ça bien, enregistre en utf8, met ton charset en utf8, et tes bases aussi...
Marsh Posté le 06-12-2010 à 11:36:26
Alisteroid a écrit : |
La classe, j'aime
Citation : |
Tout à fait Ça fout en l'air les recherches, les indexations et les tris.
UTF-8 ou la MORT
Faut laisser tomber iso et cie, c'est obsolète, c'est limité et ça génère plein de problèmes (un russe ou un chinois tape du texte dans son browser non-iso, ça va rentrer porte nawak dans la base).
En résumé :
* page html en UTF-8
* Traitement PHP en UTF-8 (attention aux config serveur foireuses qui forcent un encodage à la volée)
* Base de données en UTF-8 sans htmlspecialchar foireux, que du pur UTF-8
et là y aura plus jamais de problème d'encodage
Marsh Posté le 06-12-2010 à 13:48:42
smaragdus a écrit :
|
Et aussi si on balance un texte accentué de 50 caractères dans un varchar(50), la fin va être tronquée, car l'équivalent d'un "<" en entité html prends 3 carctères de plus, au final le texte à insérer en base sera bcp plus long que 50 caractères ... le 50 eme caractère risque en plus de tomber sur une entité html qui ne pourra plus être décodée ..
Bref ça pose énormément de problèmes .
smaragdus a écrit : |
Rien à dire de plus
Point important : Si mysql n'est pas configuré par défaut pour l'UTF8 il faut faire un SET NAMES 'utf8'; avant tout autre requete (à faire juste après la connexion donc )
Marsh Posté le 06-12-2010 à 13:52:32
Un tuto sympa pour bosser en UTF8 : http://electron-libre.fassnet.net/utf8.php
Ca résume à peut prêt tout ce qu'il faut savoir
Marsh Posté le 03-12-2010 à 11:32:51
Bonjour, tout le monde ca va ?
j'ai un formulaire qui contient des champs text et text area .. je veux récuperer le contenu des champs et l'insérer dans une base de données.
mon pb est au niveau d'insertion dans la base, exemple
contenu d'un champ titre = <gras>Répit pour le photovoltaïque</gras>
pour récupere ce conteni j'ai utilisé : <gras>$titre = htmlspecialchars($_POST['titre'], ENT_QUOTES);</gras>
et dans la base de données je me trouve juste avec le <gras>R</gras> !!!!
si quelqu'un peut m'aider ? Merci
Bonne journée