Caractere chinois - Phpmyadmin [SQL] [Résolu] - SQL/NoSQL - Programmation
Marsh Posté le 22-03-2007 à 15:53:46
j'ai eu ce problème dans le passé, j'avais opté pour une solution crade: dans la BD, je stoquais directement l'entité HTML qui correspondait au caractère en question, par exemple pour 款 , je stockais ça dans la base:
& #27454 ; (sans les deux espaces sinon ça interprète)
Le truc c'est que si tu veux utiliser ta base pour autre chose que des pages web ben t'es baisé
Marsh Posté le 22-03-2007 à 16:07:56
Merci, je vais opté pour cette solution, c'est juste pour un site internet
Connaitrais tu un site répertoriant tout ces fameux caratères chinois?^^
edit: j'ai ce site http://unicode.coeurlumiere.com/?n=24576 mais vas y pour retrouvé le caractère correspondant
Marsh Posté le 22-03-2007 à 16:52:27
bah en fait, moi j'avais un formulaire et quand je tapais les caracteres chinois et validait le formulaire, mon script php récuperait directement le "code html" correspondant
sinon, je crois qu'il y a des freewares qui font la conversion de caractère chinois en un peu tout les encodages qui existent
Marsh Posté le 22-03-2007 à 17:28:25
http://magicsite.manga-torii.com/?page=P_HOME
bon, à moins que ce ne soit parceque j'utilise le couple SQL Server 2005 + .NET 2.0, chez moi ça marche et sans rien faire.
la solution ? REQUETE PARAMETREE
Marsh Posté le 22-03-2007 à 18:07:51
Pour etre un peu plus précis, c'est quand j'insère les caracteres chinois dans ma base que le changement s'effectue. Je soupcone phpmyadmin^^
REQUETE PARAMETREE C4QUOI
edit: Le probleme c'est pas la conversion, c'est phpmyadmin qui effectue les changement et me remplace mon caractere spécial par un saut de ligne dans la input box.
Je pense pas que faire un script php pour inséré directement mes données dans la base résoud le problème. Le code HTML est correct lorsque je l'insère, c'est le server sql qui interprete mal certains caractères.
En tout cas, merci a tous pour vos réponses
Marsh Posté le 22-03-2007 à 18:16:15
trueslash a écrit : bah en fait, moi j'avais un formulaire et quand je tapais les caracteres chinois et validait le formulaire, mon script php récuperait directement le "code html" correspondant |
Par code HTML, tu entends & 27986 ; ou quelquechose comme ca °äº§ä¿è¯â?
As tu toujours l'adresse de ton formulaire, ca m'interesse grandement.
Désolé pour le double post
Marsh Posté le 23-03-2007 à 09:40:49
tu passes par PHPMyAdmin pour saisir tes données ?
sinon, pour ce qui est des requêtes paramétrées, cherche sur la forum comment on fait. moi je fais pas de php.
en gros, dans ton code PHP, tu écris ta requête de cette façon :
insert into matable (id, label) values (:id, :value)
et ensuite, au niveau du PHP, et non pas des concaténations de chaînes, tu associes :id et :value à des variables PHP, ce qui permet de s'assurer que le contenu exact de la variable sera utilisé, et non pas une approximation littérale sous forme de chaîne de caractères.
les avantages sont inombrables, et pour ainsi dire aucun défaut (juste une syntaxe légèrement plus lourde, mais plus lisible)
Marsh Posté le 23-03-2007 à 11:26:58
Une requete sql quoi
Bon après divers tests, il s'agit bien de Phpmyadmin qui remplace ces caractères par des sauts de ligne. Une solution envisageable est de mettre a jour la base de données via des requetes sql. Il s'agit bien de phpmysql, et non des textbox. Il est tout a fait envisagable de créé un formulaire php avec des inputs pour effectuer ces changements.
Encore un grand merci a vous tous
Marsh Posté le 22-03-2007 à 15:24:56
Bonjour
Aujourd'hui, je suis tombé sur un probleme assez corriace, du moins pour moi. Je travaille actuellement sur un site internet multilangues. Le contenu est stocké dans des champs TEXT d'une base SQL. Tout marche pour le mieux du monde excepté certain caratere chinois qui sont mofier par la base SQL.
Explication:
Un caractere chinois est encodé en utf-8 comme cela avec un caractere special entre le et le .
Le caratere chinois ainsi codé s'affiche correctement dans un fichier html, mais lorsque je l'insert dans un champ de ma base SQL, la base de donné interprète le caratere spécial comme un saut de ligne.
Donc lorsque j'importe mes caratères à partir de ma base dans un fichier html, le caractère chinois s'en trouve modifier. Il devient de la forme +espace+ et je me retrouve avec un ? ? a la place du signe.
J'ai essayer de modifier le type de mon champs en binary, mais je me retrouve avec un autre probleme. Le fichier HTML de sortie n'interprète plus les signes chinois, au ieu de ca il affiche le codage en utf-8, comme cela :âç¯çæ¿å°äº§ä¿è¯â 为æ¨æä¾ä¸ä¸ªç®åãå¿«æ·
Voila, si jamais quelqu'un a la moindre idée pour résoudre ce problème, je le remercie d'avance
Message édité par guzman le 23-03-2007 à 11:28:11