mysql> show variables like '%collation%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
bien sûr, j'ai redémarré le server entretemps.
alors que je souhaite avoir ***pour toutes mes bd***
utf8 avec collation utf8 fr.
--
L'homme est imparfait, mais ce n'est pas étonnant
quand on pense à l'époque où il a été créé.
— Alphonse Allais
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Une Bévue
Le 16/01/2013 11:39, Une Bévue a écrit :
J'ai suivi les conseils de : <http://doc.ubuntu-fr.org/mysql>
bon, j'ai suivi d'autres conseils (pour Mac OS X Mountain Lion) : <http://dba.stackexchange.com/questions/30960/mysql-wait-timeout-mac-os-x-mountain-lion-how-do-i-set-it>
là ça roule, ce que j'ai fait (ça peut servir à d'autres) :
$ mysql -u root -p [...] mysql> set global character_set_database='utf8'; Query OK, 0 rows affected (0.00 sec)
mysql> set global character_set_server='utf8'; Query OK, 0 rows affected (0.00 sec) mysql> q Bye
*** apparemment il faut quitter mysql pour valider les changements, puis re-rentrer dans mysql : $ mysql -u root -p [...] mysql> show variables like '%character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
donc pour character set c'est OK, reste à vérifier :
que c'est bien pris en compte ; qu'advient-il des db qui étaient en latin1 ?
et enfin trouver quoi mettre pour changer : $ sudo mysqladmin -pyvon5533 variables | grep collat | collation_connection | latin1_swedish_ci
| | collation_database | latin1_swedish_ci
| | collation_server | latin1_swedish_ci
|
en qqc d'équivalent à mon "setlocale(LC_CTYPE, 'fr_FR.utf-8')".
-- L'homme est imparfait, mais ce n'est pas étonnant quand on pense à l'époque où il a été créé. — Alphonse Allais
Le 16/01/2013 11:39, Une Bévue a écrit :
J'ai suivi les conseils de :
<http://doc.ubuntu-fr.org/mysql>
bon, j'ai suivi d'autres conseils (pour Mac OS X Mountain Lion) :
<http://dba.stackexchange.com/questions/30960/mysql-wait-timeout-mac-os-x-mountain-lion-how-do-i-set-it>
là ça roule, ce que j'ai fait (ça peut servir à d'autres) :
$ mysql -u root -p
[...]
mysql> set global character_set_database='utf8';
Query OK, 0 rows affected (0.00 sec)
mysql> set global character_set_server='utf8';
Query OK, 0 rows affected (0.00 sec)
mysql> q
Bye
*** apparemment il faut quitter mysql pour valider les changements, puis
re-rentrer dans mysql :
$ mysql -u root -p
[...]
mysql> show variables like '%character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
donc pour character set c'est OK, reste à vérifier :
que c'est bien pris en compte ;
qu'advient-il des db qui étaient en latin1 ?
et enfin trouver quoi mettre pour changer :
$ sudo mysqladmin -pyvon5533 variables | grep collat
| collation_connection | latin1_swedish_ci
|
| collation_database | latin1_swedish_ci
|
| collation_server | latin1_swedish_ci
|
en qqc d'équivalent à mon "setlocale(LC_CTYPE, 'fr_FR.utf-8')".
--
L'homme est imparfait, mais ce n'est pas étonnant
quand on pense à l'époque où il a été créé.
— Alphonse Allais
J'ai suivi les conseils de : <http://doc.ubuntu-fr.org/mysql>
bon, j'ai suivi d'autres conseils (pour Mac OS X Mountain Lion) : <http://dba.stackexchange.com/questions/30960/mysql-wait-timeout-mac-os-x-mountain-lion-how-do-i-set-it>
là ça roule, ce que j'ai fait (ça peut servir à d'autres) :
$ mysql -u root -p [...] mysql> set global character_set_database='utf8'; Query OK, 0 rows affected (0.00 sec)
mysql> set global character_set_server='utf8'; Query OK, 0 rows affected (0.00 sec) mysql> q Bye
*** apparemment il faut quitter mysql pour valider les changements, puis re-rentrer dans mysql : $ mysql -u root -p [...] mysql> show variables like '%character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
donc pour character set c'est OK, reste à vérifier :
que c'est bien pris en compte ; qu'advient-il des db qui étaient en latin1 ?
et enfin trouver quoi mettre pour changer : $ sudo mysqladmin -pyvon5533 variables | grep collat | collation_connection | latin1_swedish_ci
| | collation_database | latin1_swedish_ci
| | collation_server | latin1_swedish_ci
|
en qqc d'équivalent à mon "setlocale(LC_CTYPE, 'fr_FR.utf-8')".
-- L'homme est imparfait, mais ce n'est pas étonnant quand on pense à l'époque où il a été créé. — Alphonse Allais
Une Bévue
Le 16/01/2013 14:40, Une Bévue a écrit :
que c'est bien pris en compte ;
oui +/- en tout cas au niveau de la définition de la table : CREATE TABLE `categories` ( `rowid` int(11) NOT NULL, `idx` int(11) NOT NULL, `name` varchar(80) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8
pas au niveau des données...
qu'advient-il des db qui étaient en latin1 ?
rien ne change, les données restent en latin1 MEME APRES un update des lignes comportants des accents.
-- L'homme est imparfait, mais ce n'est pas étonnant quand on pense à l'époque où il a été créé. — Alphonse Allais
Le 16/01/2013 14:40, Une Bévue a écrit :
que c'est bien pris en compte ;
oui +/- en tout cas au niveau de la définition de la table :
CREATE TABLE `categories` (
`rowid` int(11) NOT NULL,
`idx` int(11) NOT NULL,
`name` varchar(80) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
pas au niveau des données...
qu'advient-il des db qui étaient en latin1 ?
rien ne change, les données restent en latin1 MEME APRES un update des
lignes comportants des accents.
oui +/- en tout cas au niveau de la définition de la table : CREATE TABLE `categories` ( `rowid` int(11) NOT NULL, `idx` int(11) NOT NULL, `name` varchar(80) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8
pas au niveau des données...
qu'advient-il des db qui étaient en latin1 ?
rien ne change, les données restent en latin1 MEME APRES un update des lignes comportants des accents.
Le Wed, 16 Jan 2013 15:34:35 +0100, Une Bévue a écrit :
rien ne change, les données restent en latin1 MEME APRES un update des lignes comportants des accents.
AMHA ca dit la charset utilisé, ça ne transcode pas.
iconv ?
Une Bévue
Le 16/01/13 16:22, moi-meme a écrit :
AMHA ca dit la charset utilisé, ça ne transcode pas.
ben, j'ai droppé la base et l'ai recréée par : CREATE TABLE `categories` ( `rowid` int(11) NOT NULL, `idx` int(11) NOT NULL, `name` varchar(80) NOT NULL DEFAULT '' ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
toutes les variables internes définissant un CHARACTER SEt sont à 'utf8' et toutes les variables internes de COLLATION sont à 'utf8_general_ci'.
quand je suis au terminal, je suis en UTF-8, mon script client en php utilise l'utf8, MAIS la ligne : echo "character_set = " . mysqli_character_set_name($mysqli) . "<br />"; avec $mysqli = new mysqli("127.0.0.1", $user, $password, $database, $port);
me retourne :
"character_set = latin1"
ça voudrait -au contraire- que MySQL transcode en latin1 ce qui est entré en utf8...
iconv ?
ben s'il faut utiliser iconv pour se connecter à une base, c'est bullshit non ?
-- L'homme est imparfait, mais ce n'est pas étonnant quand on pense à l'époque où il a été créé. — Alphonse Allais
Le 16/01/13 16:22, moi-meme a écrit :
AMHA ca dit la charset utilisé, ça ne transcode pas.
ben, j'ai droppé la base et l'ai recréée par :
CREATE TABLE `categories` (
`rowid` int(11) NOT NULL,
`idx` int(11) NOT NULL,
`name` varchar(80) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
toutes les variables internes définissant un CHARACTER SEt sont à 'utf8'
et toutes les variables internes de COLLATION sont à 'utf8_general_ci'.
quand je suis au terminal, je suis en UTF-8, mon script client en php
utilise l'utf8, MAIS la ligne :
echo "character_set = " . mysqli_character_set_name($mysqli) . "<br />";
avec $mysqli = new mysqli("127.0.0.1", $user, $password, $database, $port);
me retourne :
"character_set = latin1"
ça voudrait -au contraire- que MySQL transcode en latin1 ce qui est
entré en utf8...
iconv ?
ben s'il faut utiliser iconv pour se connecter à une base, c'est
bullshit non ?
--
L'homme est imparfait, mais ce n'est pas étonnant
quand on pense à l'époque où il a été créé.
— Alphonse Allais
AMHA ca dit la charset utilisé, ça ne transcode pas.
ben, j'ai droppé la base et l'ai recréée par : CREATE TABLE `categories` ( `rowid` int(11) NOT NULL, `idx` int(11) NOT NULL, `name` varchar(80) NOT NULL DEFAULT '' ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
toutes les variables internes définissant un CHARACTER SEt sont à 'utf8' et toutes les variables internes de COLLATION sont à 'utf8_general_ci'.
quand je suis au terminal, je suis en UTF-8, mon script client en php utilise l'utf8, MAIS la ligne : echo "character_set = " . mysqli_character_set_name($mysqli) . "<br />"; avec $mysqli = new mysqli("127.0.0.1", $user, $password, $database, $port);
me retourne :
"character_set = latin1"
ça voudrait -au contraire- que MySQL transcode en latin1 ce qui est entré en utf8...
iconv ?
ben s'il faut utiliser iconv pour se connecter à une base, c'est bullshit non ?
-- L'homme est imparfait, mais ce n'est pas étonnant quand on pense à l'époque où il a été créé. — Alphonse Allais
Une Bévue
Le 16/01/13 11:39, Une Bévue a écrit :
alors que je souhaite avoir ***pour toutes mes bd*** utf8 avec collation utf8 fr.
Bon j'ai trouvé "un peu par hasard"... Le problème proviendrait, d'après ce que j'ai compris, de l'interface entre MySQL et PHP5 "mysqli", il faut spécifier le charset voulu :
Avec : $mysqli = new mysqli("127.0.0.1", $user, $password, $database, $port);
utiliser :
$mysqli->set_charset("utf8")
c'est curieux que cette interface transcode en latin1...
-- L'homme est imparfait, mais ce n'est pas étonnant quand on pense à l'époque où il a été créé. — Alphonse Allais
Le 16/01/13 11:39, Une Bévue a écrit :
alors que je souhaite avoir ***pour toutes mes bd***
utf8 avec collation utf8 fr.
Bon j'ai trouvé "un peu par hasard"...
Le problème proviendrait, d'après ce que j'ai compris, de l'interface
entre MySQL et PHP5 "mysqli", il faut spécifier le charset voulu :
Avec :
$mysqli = new mysqli("127.0.0.1", $user, $password, $database, $port);
utiliser :
$mysqli->set_charset("utf8")
c'est curieux que cette interface transcode en latin1...
--
L'homme est imparfait, mais ce n'est pas étonnant
quand on pense à l'époque où il a été créé.
— Alphonse Allais
alors que je souhaite avoir ***pour toutes mes bd*** utf8 avec collation utf8 fr.
Bon j'ai trouvé "un peu par hasard"... Le problème proviendrait, d'après ce que j'ai compris, de l'interface entre MySQL et PHP5 "mysqli", il faut spécifier le charset voulu :
Avec : $mysqli = new mysqli("127.0.0.1", $user, $password, $database, $port);
utiliser :
$mysqli->set_charset("utf8")
c'est curieux que cette interface transcode en latin1...
-- L'homme est imparfait, mais ce n'est pas étonnant quand on pense à l'époque où il a été créé. — Alphonse Allais
moi-meme
Le Wed, 16 Jan 2013 16:31:39 +0100, Une Bévue a écrit :
ça voudrait -au contraire- que MySQL transcode en latin1 ce qui est entré en utf8...
iconv ?
ben s'il faut utiliser iconv pour se connecter à une base, c'est bullshit non ?
c'est encore plus bullshit si MySQL transcode en latin1 ...
ah, super merci beaucoup, mais bon, d'une part ça, je l'ai déjà fait mais aussi il me semble que dans la docum propre à MySQL il règne une certaine confusion, exemples :
est-ce 'utf8_general_ci' ou 'utf8_unicode_ci'?
et même le nom des variables internes à MySQL est-il avec tirets ou underscore ?
"default-character-set" ou "default_character_set"
je vérifierai tout cela en fonction des versions que j'ai.
mais pour l'instant, tout me semble être passé en utf8 pour MySQL, quand à l'interface MySQL/PHP5 il m'a suffit de faire : $mysqli->set_charset("utf8") pour avoir les sorties MySQL en utf8
-- L'homme est imparfait, mais ce n'est pas étonnant quand on pense à l'époque où il a été créé. — Alphonse Allais
Le 16/01/13 22:08, moi-meme a écrit :
c'est encore plus bullshit si MySQL transcode en latin1 ...
ben, d'après ce que j'ai compris, c'est ***l'interface*** entre MySQL et
PHP5, soit mysqli qui ***transcode en latin1...
ah, super merci beaucoup, mais bon, d'une part ça, je l'ai déjà fait
mais aussi il me semble que dans la docum propre à MySQL il règne une
certaine confusion, exemples :
est-ce 'utf8_general_ci' ou 'utf8_unicode_ci'?
et même le nom des variables internes à MySQL est-il avec tirets ou
underscore ?
"default-character-set" ou "default_character_set"
je vérifierai tout cela en fonction des versions que j'ai.
mais pour l'instant, tout me semble être passé en utf8 pour MySQL, quand
à l'interface MySQL/PHP5 il m'a suffit de faire :
$mysqli->set_charset("utf8")
pour avoir les sorties MySQL en utf8
--
L'homme est imparfait, mais ce n'est pas étonnant
quand on pense à l'époque où il a été créé.
— Alphonse Allais
ah, super merci beaucoup, mais bon, d'une part ça, je l'ai déjà fait mais aussi il me semble que dans la docum propre à MySQL il règne une certaine confusion, exemples :
est-ce 'utf8_general_ci' ou 'utf8_unicode_ci'?
et même le nom des variables internes à MySQL est-il avec tirets ou underscore ?
"default-character-set" ou "default_character_set"
je vérifierai tout cela en fonction des versions que j'ai.
mais pour l'instant, tout me semble être passé en utf8 pour MySQL, quand à l'interface MySQL/PHP5 il m'a suffit de faire : $mysqli->set_charset("utf8") pour avoir les sorties MySQL en utf8
-- L'homme est imparfait, mais ce n'est pas étonnant quand on pense à l'époque où il a été créé. — Alphonse Allais