IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> PHP/Mysql, prob d'affichage de caractères...
Options
Ducace
posté 12 Feb 2015, 17:06
Message #1


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 583
Inscrit : 14 Dec 2005
Lieu : Bruxelles
Membre no 51 677



J'ai déjà lu là-dessus mais dans mon cas, je ne comprends pas ce qui m'arrive.

J'explique.

Je construis une DB dans Filemaker pro (UTF-8).
J'exporte en .csv.
J'importe le .csv dans MAMP/MySQL (Réglage VAR UTF8-general)
J'intègre mes scripts PHP/MySQL dans un document HTML fait dans Freeway (UTF-8).

Résultat, les caractères issus du document HTML et du codage PHP sont parfaits.
Par contre, ce qui sort de la DB, ce sont des caractères spéciaux remplacés par des losanges avec un point d'interrogation au milieu.

J'ai essayé plusieurs type d'export/import Filemaker/MySQL, sans plus de succès...

Vous avez une idée?

Ps: à part ça, je remarque que si j'ai des requêtes SQL avec des noms de colonnes accentués, ça ne marche pas. Par contre, si j'appelle en enlevant les accents, ça marche, même si les titres de colonnes sont accentués. Bizarre, ce MySQL. Vous ne trouvez pas?

Ce message a été modifié par Ducace - 12 Feb 2015, 17:09.


--------------------
Sur Mac depuis qu'il y a des Macs.
Go to the top of the page
 
+Quote Post
No6
posté 13 Feb 2015, 00:22
Message #2


Oui ?
*****

Groupe : Membres
Messages : 3 889
Inscrit : 24 Jun 2003
Lieu : BZH
Membre no 8 224




Primo: s'assurer que le fichier csv est bien en utf8, via un editeurde code classique (j'utilise encore gedit)

Secondo : les formats csv sont plutôt vicieux, un coup le séparateur c'est une virgule, un autre un point virgule, idem pour la virgule décimale qui ext le point en Anglais, un autre coup il faut des doubles quotes sur les strings, etc...
Normalement CSV ça veux dire Comma Separated Values ...


tertio : dans ta DB MySQL, les champs textes doivent êtres déclarés en UTF8, si ce n'est l'ensemble de la base.

quatrio : la communication entre le serveur apache + l'interpréteur PHP et le moteur de la DB doivent se faire en UTF8 eux aussi

ce sont les commandes php mysqli_set_charset($cnx, "utf8") suivi de mysqli_query($cnx, "SET NAMES UTF8") pour chaque connection, car par défaut c'est configuré sur le charcode du serveur (? je crois) et qu'est jamais de l'utf8

Quinquatrio, tes pages htmls doivent etre en utf8 et déclarées comme telles.

Sixotinero : je crois que j'avais déjà posté cette réponse quelquepart dans ce forum...


--------------------
"Je sais que vous croyez comprendre ce que vous pensez que j'ai dit, mais je ne suis pas sûr que vous réalisiez que ce que vous avez entendu n'est pas ce que je pense."
(Alan Greenspan)
Go to the top of the page
 
+Quote Post
baron
posté 13 Feb 2015, 01:26
Message #3


Macbidouilleur d'Or !
*****

Groupe : Modérateurs
Messages : 19 315
Inscrit : 22 Jul 2004
Lieu : Louvain-la-Neuve (Gaule Gelbique)
Membre no 21 291



Citation (No6 @ 13 Feb 2015, 00:22) *
Sixotinero : je crois que j'avais déjà posté cette réponse quelquepart dans ce forum...

Ouais…
http://forum.macbidouille.com/index.php?sh...p;#entry3796777


--------------------
MacBook Pro 14’’ 2021, M1 Pro, 16 Go/1 To – macOS  12.6 “Monterey”  MacBook Pro 15’’ mi-2010 Core i5 2,53 GHz, 8 Go/SSD Samsung 860EVO 1 To – Mac OSX 10.6.8  Power Macintosh G3 beige de bureau, rev.1 @ 233MHz, 288 Mo/4Go – MacOS 9.1 — + carte PCI IDE/ATA Tempo 66 Acard 6260 avec HD interne Maxtor 80 Go + graveur interne CDRW/DVD LG GCC-4520B + tablette A4 Wacom UD-0608-A + LaCie ElectronBlueIV 19" + HP ScanJet 6100C   B-Box 3 + HP LaserJet 4000 N  
La recherche dans MacBidouille vous paraît obscure ? J'ai rédigé une proposition de FAQ. Le moteur logiciel a un peu changé depuis mais ça peut aider quand même.
Les corsaires mettent en berne…
Go to the top of the page
 
+Quote Post
Ducace
posté 13 Feb 2015, 10:50
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 583
Inscrit : 14 Dec 2005
Lieu : Bruxelles
Membre no 51 677



@No6: Waouw, merci, merci.
@Baron: clin d'œil du matin. J'avais cherché mais pas trouvé.

Je repars de 1 à 6.

J'ai vérifié le CSV dans TextWrangler, exporté/importé/réexporté en UTF8, le contenu a l'air ok.

Dans la DB, les champs sont bien en UTF8.

par contre, la commande ci-dessous que j'ai codée en test me renvoit: latin1

$encodage = mysql_client_encoding($link);
echo ($encodage);

J'ai essayé les
mysqli_set_charset($link, "utf8");
mysqli_query($link,"SET NAMES UTF8");

mais cela ne semble rien donner comme changement. Toujours Latin 1.
Fonction mal codée?
(j'ai essayé mysl et mysqli)

Voilà, après un peu de lecture la fonction était:
mysql_set_charset("utf8", $link);
Il fallait inverser les arguments.

Voilà, ça maaaarche!

Encore merci.

Ce message a été modifié par Ducace - 13 Feb 2015, 11:33.


--------------------
Sur Mac depuis qu'il y a des Macs.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 29th March 2024 - 12:11