Souci multifactoriel avec codage UTF-8 dans localhost (wamp)
Résolu
stephdem
Messages postés
36
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
A voir également:
- Souci multifactoriel avec codage UTF-8 dans localhost (wamp)
- Codage ascii - Guide
- Clé windows 8 - Guide
- Mixcraft 8 - Télécharger - Création musicale
- Codage binaire - Guide
- Internet explorer 8 - Télécharger - Navigateurs
8 réponses
Dans cette opération de connexion à mysql, il faut préciser que tu utilises l'UTF-8, même si tes tables ont déjà cet encodage. C'est étonnant, je suis d'accord, mais c'est ainsi.
Une des syntaxes possibles consiste à ajouter un array d'options en guise de 4e paramètre lors de la connexion :
Une des syntaxes possibles consiste à ajouter un array d'options en guise de 4e paramètre lors de la connexion :
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe, array( PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
Bonjour
Juste pour vérification, peux-tu nous mettre sur cjoint.com (ou autre) un de tes fichiers csv encodés en utf-8 ? Quelque chose qui ne soit pas confidentiel, évidemment.
Autre précision, quelle est la collation de tes tables mysql ?
Et lors de ta connexion à mysql dans ton php, précises-tu bien le charset utf-8 ?
Juste pour vérification, peux-tu nous mettre sur cjoint.com (ou autre) un de tes fichiers csv encodés en utf-8 ? Quelque chose qui ne soit pas confidentiel, évidemment.
Autre précision, quelle est la collation de tes tables mysql ?
Et lors de ta connexion à mysql dans ton php, précises-tu bien le charset utf-8 ?
Bonjour,
Le site est en production donc confidentiel et les csv de chaque table font plusieurs millions d'octets.
A la rigueur si intérêt ce serait possible de prendre un csv et de ne garder que les 2 premières lignes, une ligne avec des caractères spéciaux et la dernière ligne.
Pour la collation de la base et des tables c'est utf8_general_ci
Pour la dernière question je ne comprend pas, dans wampserver je vais dans localhost et j'appelle une page qui toutes commencent par
<meta charset="UTF-8">
A+, Steph
Le site est en production donc confidentiel et les csv de chaque table font plusieurs millions d'octets.
A la rigueur si intérêt ce serait possible de prendre un csv et de ne garder que les 2 premières lignes, une ligne avec des caractères spéciaux et la dernière ligne.
Pour la collation de la base et des tables c'est utf8_general_ci
Pour la dernière question je ne comprend pas, dans wampserver je vais dans localhost et j'appelle une page qui toutes commencent par
<meta charset="UTF-8">
A+, Steph
Effectivement, quelques lignes pourraient suffire si elles comportent des caractères non ASCII. Mais finalement, c'est inutile si tes tables mysql ont bien une collation utf8 et que leur contenu s'affiche correctement avec PHPMyadmin.
Pour le point que tu ne comprends pas, il s'agit de la connexion à la base de données, il y a une option à mettre pour indiquer que les données seront transmises en utf-8. Peux-tu montrer le code que tu utilises pour la connexion à mysql, sans le mot de passe évidemment ?
Pour le point que tu ne comprends pas, il s'agit de la connexion à la base de données, il y a une option à mettre pour indiquer que les données seront transmises en utf-8. Peux-tu montrer le code que tu utilises pour la connexion à mysql, sans le mot de passe évidemment ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le fichier .php de connexion est dans un require
<php
$param_hote='localhost';
$param_port='3306';
$param_nom_bd='blablamysql';
$param_utilisateur='root';
$param_mot_passe='xxx';
?>
J'ai un autre fichier pour le test en ligne.
Voilà?
A+
Steph
<php
$param_hote='localhost';
$param_port='3306';
$param_nom_bd='blablamysql';
$param_utilisateur='root';
$param_mot_passe='xxx';
?>
J'ai un autre fichier pour le test en ligne.
Voilà?
A+
Steph
Tu n'as donné qu'une liste de variables. Qui interviennent dans la connexion, soit, mais il manque la connexion proprement dite.
Tu n'as pas quelque chose qui ressemble à :
Tu n'as pas quelque chose qui ressemble à :
$connexion= new PDO('mysql...?
Bonjour,
Ah si, bien sûr j’ai la ligne suivante dans chaque fichier :
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
Dans le code complet suivant
<?php
error_reporting(E_ALL);
require ("aaaaaa.php");
try {
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
} catch (Exception $e) {
echo 'Erreur : ' . $e->getMessage() . '<br />';
echo 'N° : ' . $e->getCode();
}
A+
Steph
Ah si, bien sûr j’ai la ligne suivante dans chaque fichier :
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
Dans le code complet suivant
<?php
error_reporting(E_ALL);
require ("aaaaaa.php");
try {
$connexion = new PDO('mysql:host=' . $PARAM_hote . ';dbname=' . $PARAM_nom_bd, $PARAM_utilisateur, $PARAM_mot_passe);
} catch (Exception $e) {
echo 'Erreur : ' . $e->getMessage() . '<br />';
echo 'N° : ' . $e->getCode();
}
A+
Steph