Page 1 sur 1

problème avec le japonais dans une base mysql.

Posté : 18 nov. 2006, 21:23
par houbahop
Bonjour,

Je n'arrive pas à enregistrer des caractères japonais dans ma base de donnée. Lorsque je le colle dans phpmyadmin, je vois bien les caractères à l'écran, mais aprés avoir sauvegardé, les caractères sont remplacés par des points d'interrogation.

Je prévise que le template que j'utilise sur mon CMS prend en charge unicode et lorsque je met de l'unicode dans un script, il s'affiche bien.

Ce qui me chagrine aussi c'est que au départ la base de donnée était pas un utf8 et j'ai essayé de convertir la structure. Vous verrez plus bas ce que je vois dans les paramètres de phpmyadmin,
mais lorsque j'examine la structure de la table concernée en particulier le champ qui contiendra le japonais, je vois comme Interclassement : latin1_german1_ci.
Je ne sais pas comment changer cela champ par champ.


Pouvez vous m'aider svp ?

j'utilise infomaniak comme fournisseur d'acces, cad que j'ai phpmyadmin point.

Merci,

Houbahop

# Version du serveur: 5.0.26-max-log
# Version du protocole: 10
# Serveur: Localhost via UNIX socket
# Utilisateur:
# Jeu de caractères pour MySQL: UTF-8 Unicode (utf8)
Interclassement pour la connexion MySQL:utf8_unicode_ci

Posté : 18 nov. 2006, 21:38
par Ajoloca
Bonsoir,

De nombreux postes du style du tien arrivent et mettent en case la dernière version de phpMyAdmin.

Certains (qui ont accès à leur serveur) ont résolu le PB en installant une version précédente de phpMyAdmin.

Je te dis ça car tes paramètres semblent corrects.

petite avancée

Posté : 18 nov. 2006, 21:42
par houbahop
Je viens de découvrir une commande sql pour convertir le champ mysql en utf

ALTER TABLE jos_jf_content CHANGE value value TEXT CHARACTER SET utf8;

depuis cela, je peux insérer des kanjis dans ma base et ils sont affichés en tant que tel dans phpmyadmin.

Cependant, j'ai toujours le problème des points d'intérrogation dans ma page.

Je soubsonne que ma base de donnée ne soit pas encore totalement configurée pour au niveau des jeux de caractère et interclassement..
Mais je ne sais pas quoi faire.

Posté : 18 nov. 2006, 21:52
par Ajoloca
Re,
Dans ce cas tu peux utiliser la commande 'ALTER TABLE' d'une façon plus générale, pour convertir l'exixstent

Code : Tout sélectionner

ALTER TABLE nom_table CONVERT TO CHARACTER SET charset_name [COLLATE collation_name]
et pour la suite

Code : Tout sélectionner

ALTER TABLE nom_table [DEFAULT] CHARACTER SET charset_name [COLLATE collation_name]
ce qui te changera toute la table et non seulement un champ.

Posté : 18 nov. 2006, 21:54
par houbahop
Merci joloca pour cette précision.

Pourtant, j'ai la version 2.9.0 de phpmyadmin, et d'aprés ce que j'ai lu sur leur site officiel, la dernière est la 2.9.1

EDIT :

Je viens de faire

ALTER TABLE jos_jf_content CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

cela a bien mis les champs en utf8, merci :)) mais rien de changé au niveau du souci.

Posté : 18 nov. 2006, 22:06
par Ajoloca
Re,

Ça ne résoudra pas le PB surement mais un petit détail.

Dans les paramètres de ta base tu as
Interclassement pour la connexion MySQL:utf8_unicode_ci
et tu mets
COLLATE utf8_general_ci;
Mais je crois que ça ne joue que sur l'ordre de tri (du mois dans latin_...) pour des caractères spécifiques tels que (oe) tels que coeur.

Posté : 18 nov. 2006, 22:52
par houbahop
oupss... merci, j'ai corriger ceci, et en effet, cela n'a pas corrigé.

Il y a autre chose qui me chagrine, c'est lorsque je vais voir les paramètres de mes bases de données il y à écrit :

Base de données Croissant Interclassement
----------------------------------------------------------
information_schema utf8_general_ci
lookmyhomenet utf8_unicode_ci
Total: 2 latin1_german1_ci

Je me demande pourquoi il affiche encore ce latin1_german1_ci

à cet endroit la, je ne vois pas à quoi ca sert.