Tu veux dire qu'une page comportant un Doctype valide et un Charset
explicite et ne comportant aucune erreur détectée par le w3c peut être
mal interprétée alors que c'est le but du w3c ? C'est grave ça !
Tu veux dire qu'une page comportant un Doctype valide et un Charset
explicite et ne comportant aucune erreur détectée par le w3c peut être
mal interprétée alors que c'est le but du w3c ? C'est grave ça !
Tu veux dire qu'une page comportant un Doctype valide et un Charset
explicite et ne comportant aucune erreur détectée par le w3c peut être
mal interprétée alors que c'est le but du w3c ? C'est grave ça !
[...] En HTML5 :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
...
</head>
[...] En HTML5 :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
...
</head>
[...] En HTML5 :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
...
</head>
Ceci, même si le contenu de ma base de données reste en mode latin1.
Convertir la database existante en mode utf8 ce serait un sacré boulot.
Ce qui me gêne, c'est surtout les strlen et substr() de mes
scripts... ;)
Ceci, même si le contenu de ma base de données reste en mode latin1.
Convertir la database existante en mode utf8 ce serait un sacré boulot.
Ce qui me gêne, c'est surtout les strlen et substr() de mes
scripts... ;)
Ceci, même si le contenu de ma base de données reste en mode latin1.
Convertir la database existante en mode utf8 ce serait un sacré boulot.
Ce qui me gêne, c'est surtout les strlen et substr() de mes
scripts... ;)
vous aurez beau mettre une balise html <meta charset="utf-8" />
c'est la déclaration du serveur qui prévaudra.
(belle absurdité, en passant)
Oui mais comment intervenir sur le serveur ?
Soit dans le .htaccess avec la directive "CharsetDefault", soit en
balançant le header adhoc en PHP.
vous aurez beau mettre une balise html <meta charset="utf-8" />
c'est la déclaration du serveur qui prévaudra.
(belle absurdité, en passant)
Oui mais comment intervenir sur le serveur ?
Soit dans le .htaccess avec la directive "CharsetDefault", soit en
balançant le header adhoc en PHP.
vous aurez beau mettre une balise html <meta charset="utf-8" />
c'est la déclaration du serveur qui prévaudra.
(belle absurdité, en passant)
Oui mais comment intervenir sur le serveur ?
Soit dans le .htaccess avec la directive "CharsetDefault", soit en
balançant le header adhoc en PHP.
Je reste donc en windows-1252, non mais !
C'est une _très_ mauvaise idée, car ce jeu de caractères, spécifique à
Ms-Windows, risque d'être mal interprété sur MacOs, Linux, etc.
Je reste donc en windows-1252, non mais !
C'est une _très_ mauvaise idée, car ce jeu de caractères, spécifique à
Ms-Windows, risque d'être mal interprété sur MacOs, Linux, etc.
Je reste donc en windows-1252, non mais !
C'est une _très_ mauvaise idée, car ce jeu de caractères, spécifique à
Ms-Windows, risque d'être mal interprété sur MacOs, Linux, etc.
Bonjour,
Le 19/04/2013 10:08, Jean Francois Ortolo a écrit :Ceci, même si le contenu de ma base de données reste en mode latin1.
Convertir la database existante en mode utf8 ce serait un sacré
boulot.
Attention, ne pas confondre la manière dont est stocké le contenu dans
la base et la manière dont on le récupère ! On peut très bien avoir un
stockage iso latin-1 et récupérer en utf-8 par exemple...
Le stockage, c'est du côté de la collation qu'il faut regarder. Ca
inclus le stockage, mais aussi la comparaison et le tri (est-ce que c
est équivalent à ç ? é avant e ?), la prise en compte ou non de la casse.
L'application qui se connecte elle utilisera les propriétés de la
connexion. On pourra donc récupérer le contenu en utf-8 par exemple.
Là, tout dépend du middleware que vous utilisez (odbc, jdbc, ...)Ce qui me gêne, c'est surtout les strlen et substr() de mes
scripts... ;)
A ma connaissance les langages proposent d'abord des fonctions se basant
sur le nombre de caractère, décoléré de la représentation binaire. Et
les chaines sont traitées en interne avec un charset unicode ou dérivé.
Bonjour,
Le 19/04/2013 10:08, Jean Francois Ortolo a écrit :
Ceci, même si le contenu de ma base de données reste en mode latin1.
Convertir la database existante en mode utf8 ce serait un sacré
boulot.
Attention, ne pas confondre la manière dont est stocké le contenu dans
la base et la manière dont on le récupère ! On peut très bien avoir un
stockage iso latin-1 et récupérer en utf-8 par exemple...
Le stockage, c'est du côté de la collation qu'il faut regarder. Ca
inclus le stockage, mais aussi la comparaison et le tri (est-ce que c
est équivalent à ç ? é avant e ?), la prise en compte ou non de la casse.
L'application qui se connecte elle utilisera les propriétés de la
connexion. On pourra donc récupérer le contenu en utf-8 par exemple.
Là, tout dépend du middleware que vous utilisez (odbc, jdbc, ...)
Ce qui me gêne, c'est surtout les strlen et substr() de mes
scripts... ;)
A ma connaissance les langages proposent d'abord des fonctions se basant
sur le nombre de caractère, décoléré de la représentation binaire. Et
les chaines sont traitées en interne avec un charset unicode ou dérivé.
Bonjour,
Le 19/04/2013 10:08, Jean Francois Ortolo a écrit :Ceci, même si le contenu de ma base de données reste en mode latin1.
Convertir la database existante en mode utf8 ce serait un sacré
boulot.
Attention, ne pas confondre la manière dont est stocké le contenu dans
la base et la manière dont on le récupère ! On peut très bien avoir un
stockage iso latin-1 et récupérer en utf-8 par exemple...
Le stockage, c'est du côté de la collation qu'il faut regarder. Ca
inclus le stockage, mais aussi la comparaison et le tri (est-ce que c
est équivalent à ç ? é avant e ?), la prise en compte ou non de la casse.
L'application qui se connecte elle utilisera les propriétés de la
connexion. On pourra donc récupérer le contenu en utf-8 par exemple.
Là, tout dépend du middleware que vous utilisez (odbc, jdbc, ...)Ce qui me gêne, c'est surtout les strlen et substr() de mes
scripts... ;)
A ma connaissance les langages proposent d'abord des fonctions se basant
sur le nombre de caractère, décoléré de la représentation binaire. Et
les chaines sont traitées en interne avec un charset unicode ou dérivé.
Pour la conversion automatique de ma base de données, j'ai utilisé un
script php "convert.php", dont voici les caractéristiques techniques :
- Connexion à la database en utf8, avec SET NAMES='utf8' ( ou sans le
signe égal je ne sais splus ;( ),
- Lectures des noms de tables ( qui sont d'abord toutes en latin1 ):
SHOW TABLES, et mise en variable indicée de ces noms de table,
- Compte tenu du fait qu'aucun des champs de ces tables n'ont de
liens externes ( je ne sais plus ce que c'est, genre FOREIGN qqchose, je
n'utilise jaamais cette fonctionnalité de MySQL ), pour chaque valeurs
$table de cette variable indicée :
"ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8";
Pour la conversion automatique de ma base de données, j'ai utilisé un
script php "convert.php", dont voici les caractéristiques techniques :
- Connexion à la database en utf8, avec SET NAMES='utf8' ( ou sans le
signe égal je ne sais splus ;( ),
- Lectures des noms de tables ( qui sont d'abord toutes en latin1 ):
SHOW TABLES, et mise en variable indicée de ces noms de table,
- Compte tenu du fait qu'aucun des champs de ces tables n'ont de
liens externes ( je ne sais plus ce que c'est, genre FOREIGN qqchose, je
n'utilise jaamais cette fonctionnalité de MySQL ), pour chaque valeurs
$table de cette variable indicée :
"ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8";
Pour la conversion automatique de ma base de données, j'ai utilisé un
script php "convert.php", dont voici les caractéristiques techniques :
- Connexion à la database en utf8, avec SET NAMES='utf8' ( ou sans le
signe égal je ne sais splus ;( ),
- Lectures des noms de tables ( qui sont d'abord toutes en latin1 ):
SHOW TABLES, et mise en variable indicée de ces noms de table,
- Compte tenu du fait qu'aucun des champs de ces tables n'ont de
liens externes ( je ne sais plus ce que c'est, genre FOREIGN qqchose, je
n'utilise jaamais cette fonctionnalité de MySQL ), pour chaque valeurs
$table de cette variable indicée :
"ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8";
Il faut considérer qu'une collation est applicable, sur quasiment tous
les sgbd, à :
- la base de données
- une table
- une colonne
Il faut donc convertir chacun des éléments concernés...
Il faut considérer qu'une collation est applicable, sur quasiment tous
les sgbd, à :
- la base de données
- une table
- une colonne
Il faut donc convertir chacun des éléments concernés...
Il faut considérer qu'une collation est applicable, sur quasiment tous
les sgbd, à :
- la base de données
- une table
- une colonne
Il faut donc convertir chacun des éléments concernés...
Le 07/05/2013 14:30, Pierre Goiffon a écrit :Il faut considérer qu'une collation est applicable, sur quasiment tous
les sgbd, à :
- la base de données
- une table
- une colonne
Il faut donc convertir chacun des éléments concernés...
Pour MySQL, il reste aussi la possibilité de faire un dump, le modifier
dans un éditeur et ré-importer :)
Le 07/05/2013 14:30, Pierre Goiffon a écrit :
Il faut considérer qu'une collation est applicable, sur quasiment tous
les sgbd, à :
- la base de données
- une table
- une colonne
Il faut donc convertir chacun des éléments concernés...
Pour MySQL, il reste aussi la possibilité de faire un dump, le modifier
dans un éditeur et ré-importer :)
Le 07/05/2013 14:30, Pierre Goiffon a écrit :Il faut considérer qu'une collation est applicable, sur quasiment tous
les sgbd, à :
- la base de données
- une table
- une colonne
Il faut donc convertir chacun des éléments concernés...
Pour MySQL, il reste aussi la possibilité de faire un dump, le modifier
dans un éditeur et ré-importer :)
Il faut considérer qu'une collation est applicable, sur quasiment tous
les sgbd, à :
- la base de données
- une table
- une colonne
Il faut donc convertir chacun des éléments concernés...
L'ordre réel MySQL était ( faut que je revoie le script ;) ) :
"ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE
utf8_general_ci;"
J'ai vérifié avant dans toutes les tables MySQL, qu'aucune colonne ne
comportait de déclaration particulière impactant soit son collate, soit
son charset.
Théoriquement, dans ces conditions ( absence totale de déclarations
dans le colonnes des tables MySQL ) il me semble qu'il n'est pas
nécessaire de spécifier les charset et collate pour chaque colonne
P.S. Pour dump, il y a la commande Linux iconv :
iconv -f ISO8859-15 -t UTF-8 database.sql -o database_utf8.sql
Il faut considérer qu'une collation est applicable, sur quasiment tous
les sgbd, à :
- la base de données
- une table
- une colonne
Il faut donc convertir chacun des éléments concernés...
L'ordre réel MySQL était ( faut que je revoie le script ;) ) :
"ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE
utf8_general_ci;"
J'ai vérifié avant dans toutes les tables MySQL, qu'aucune colonne ne
comportait de déclaration particulière impactant soit son collate, soit
son charset.
Théoriquement, dans ces conditions ( absence totale de déclarations
dans le colonnes des tables MySQL ) il me semble qu'il n'est pas
nécessaire de spécifier les charset et collate pour chaque colonne
P.S. Pour dump, il y a la commande Linux iconv :
iconv -f ISO8859-15 -t UTF-8 database.sql -o database_utf8.sql
Il faut considérer qu'une collation est applicable, sur quasiment tous
les sgbd, à :
- la base de données
- une table
- une colonne
Il faut donc convertir chacun des éléments concernés...
L'ordre réel MySQL était ( faut que je revoie le script ;) ) :
"ALTER TABLE " . $table . " CONVERT TO CHARACTER SET utf8 COLLATE
utf8_general_ci;"
J'ai vérifié avant dans toutes les tables MySQL, qu'aucune colonne ne
comportait de déclaration particulière impactant soit son collate, soit
son charset.
Théoriquement, dans ces conditions ( absence totale de déclarations
dans le colonnes des tables MySQL ) il me semble qu'il n'est pas
nécessaire de spécifier les charset et collate pour chaque colonne
P.S. Pour dump, il y a la commande Linux iconv :
iconv -f ISO8859-15 -t UTF-8 database.sql -o database_utf8.sql