[SQL] [Résolu] Caractere chinois - Phpmyadmin

Caractere chinois - Phpmyadmin [SQL] [Résolu] - SQL/NoSQL - Programmation

Marsh Posté le 22-03-2007 à 15:24:56    

Bonjour :hello:  
 
 
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 :jap:


Message édité par guzman le 23-03-2007 à 11:28:11
Reply

Marsh Posté le 22-03-2007 à 15:24:56   

Reply

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é :D


Message édité par trueslash le 22-03-2007 à 15:55:31
Reply

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


Message édité par guzman le 22-03-2007 à 16:19:00
Reply

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 [:joce]
 
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

Reply

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

Reply

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 :o
 
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 :jap:


Message édité par guzman le 22-03-2007 à 18:12:56
Reply

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 [:joce]
 
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


 
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

Reply

Marsh Posté le 23-03-2007 à 09:40:49    

tu passes par PHPMyAdmin pour saisir tes données ? :heink:
 
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)

Reply

Marsh Posté le 23-03-2007 à 11:26:58    

Une requete sql quoi :o  
 
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 :hello:


Message édité par guzman le 23-03-2007 à 11:27:08
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed