NHenry
Messages postés15069Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 mai 2023
-
Modifié le 13 sept. 2017 à 23:56
freebike
Messages postés104Date d'inscriptionjeudi 2 juillet 2009StatutMembreDernière intervention16 juillet 2019
-
22 sept. 2017 à 21:53
Bonsoir,
Je bute sur un problème qui je pense a une réponse simple.
J'ai récemment installé un serveur utilisant Apache+PHP7+MySql/MariaDB.
De la configuration, tout est configuré en UTF8.
Mais lors des écritures en BDD, certains caractères sont remplacés par des "?"
Chaines qui fonctionne :
- ほかんこ。
- 。サンタダッシィ。2014年12月頃のイラストのようです
- Поняшьи Перья
Donc cela suppose que l'UTF-8 est bien géré, mais le caractère :
Comme le caractère ne passe pas, voici le lien du RSS qui me sert de source (sur un autre serveur en PHP5) : https://www.canterlotcomics.com/rss (le livre en début de titre)
et pareil sur celui ci : https://www.canterlotcomics.com/news/rss (le journal en début de titre)
est remplacé par 1 ou 4 ?
Par le script PHP, il est remplacé par ????
Par PhpMyAdmin il est remplacé par ?
Est-ce une limitation connue ou un pb de config ?
Comme il ne passe pas sur le forum, je suppose que c'est une limitation.
Je n'ai rien trouvé de probant, mais je pense que j'ai déjà un bout de ma réponse.
Complément après quelques tests, les colonnes sont de base en utf8_general_ci.
J'ai aussi essayé utf8mb4_unicode_ci, dans ce cas, quand je fais tout via PhpMyAdmin, le caractère s'affiche bien, mais via PHP, l'ajout mets ???? et la lecture (après écriture via PHPMyAdmin) me remonte un ?.
Je m'oriente maintenant vers un souci avec PHP.
Connexion à la BDD
global $mysqli;
$mysqli = new mysqli($host, $user,$passwd, $bdd);
if ($mysqli->connect_errno) {
printf("Echec de la connexion: %s\n", $mysqli->connect_error);
exit();
}
if(!$mysqli->set_charset("utf8"))
echo "Unicode problem";
Les écritures se font par forgeage de requêtes SQL directes et l'affichage (utilisateur) via Twig (qui ne me pose pas de soucis en PHP5 sur l'autre serveur).
Je vais continuer sur cette piste pour poursuivre mes recherches.
freebike
Messages postés104Date d'inscriptionjeudi 2 juillet 2009StatutMembreDernière intervention16 juillet 2019 18 sept. 2017 à 09:10
Bonjour NHenry
J'ai aussi le même problème sur un phpbb : http://www.freebiker.net/php/phpBB2/index.php (en bas de page)
ok pour passer en Utf8mb4 mais comment se passe la deuxieme étape dans phpmyadmin?
Merci
Pascal
NHenry
Messages postés15069Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 mai 2023158 18 sept. 2017 à 19:02
Ton problème semble plus être que tes données d'origine sont en ISO-??? et tu les affichent comme si c'était en UTF-8, le petit ? dans le carré indique que le caractère est incorrecte.
freebike
Messages postés104Date d'inscriptionjeudi 2 juillet 2009StatutMembreDernière intervention16 juillet 2019 18 sept. 2017 à 21:13
oui j'étais en iso-8859-1
Peut on convertir les table pour qu'elle s'affichent correctement?
NHenry
Messages postés15069Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 mai 2023158 18 sept. 2017 à 21:21
En changeant le type d'encodage des colonnes dans PHPMyAdmin, cela devrait te convertir correctement les caractères.
freebike
Messages postés104Date d'inscriptionjeudi 2 juillet 2009StatutMembreDernière intervention16 juillet 2019 19 sept. 2017 à 11:36
J'ai bien essayé de changer l'encodage a ce niveau (voir capture) mais cela ne change rien. Peut être existe t'il une autre solution?
NHenry
Messages postés15069Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention29 mai 2023158
>
freebike
Messages postés104Date d'inscriptionjeudi 2 juillet 2009StatutMembreDernière intervention16 juillet 2019 19 sept. 2017 à 18:30
C'est le champ, pas la table dont je parlais. Il faut changer le charset du champ, car dans uine table, les champs textes peuvent avoir différents charset.