Bonjour,
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Bonjour,
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Bonjour,
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Présentement, j'ai un htmlentities qui transforme les accents en
entités (la base mySQL est en latin-1 et tout le texte de la page
html que j'ai transformée en PHP est en UTF8). Y a-t-il une
fonction similaire pour les apostrophes ?
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Présentement, j'ai un htmlentities qui transforme les accents en
entités (la base mySQL est en latin-1 et tout le texte de la page
html que j'ai transformée en PHP est en UTF8). Y a-t-il une
fonction similaire pour les apostrophes ?
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Présentement, j'ai un htmlentities qui transforme les accents en
entités (la base mySQL est en latin-1 et tout le texte de la page
html que j'ai transformée en PHP est en UTF8). Y a-t-il une
fonction similaire pour les apostrophes ?
<?php
$cp1252_map = array(
"xc2x80" => "xe2x82xac", /* EURO SIGN */
[...]
"xc2x94" => "xe2x80x9d", /* RIGHT DOUBLE QUOTATION MARK */
[...]
"xc2x9f" => "xc5xb8" /* LATIN CAPITAL LETTER Y WITH DIAERESIS*/
);
<?php
$cp1252_map = array(
"xc2x80" => "xe2x82xac", /* EURO SIGN */
[...]
"xc2x94" => "xe2x80x9d", /* RIGHT DOUBLE QUOTATION MARK */
[...]
"xc2x9f" => "xc5xb8" /* LATIN CAPITAL LETTER Y WITH DIAERESIS*/
);
<?php
$cp1252_map = array(
"xc2x80" => "xe2x82xac", /* EURO SIGN */
[...]
"xc2x94" => "xe2x80x9d", /* RIGHT DOUBLE QUOTATION MARK */
[...]
"xc2x9f" => "xc5xb8" /* LATIN CAPITAL LETTER Y WITH DIAERESIS*/
);
Le 07/05/2009 08:59, Denis Beauregard a écrit :
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Ce caractère est reconnu par d'autres logiciels que Word, même si c'est
dans un jeu de caractères propriétaire (CP1252 de Microsoft) :
<http://www.miakinen.net/vrac/charsets/?or=4&pr6>.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Présentement, j'ai un htmlentities qui transforme les accents en
entités (la base mySQL est en latin-1 et tout le texte de la page
html que j'ai transformée en PHP est en UTF8). Y a-t-il une
fonction similaire pour les apostrophes ?
Si je comprends bien, l'apostrophe cp1252 est déjà stockée dans la base
censée contenir de l'ISO-Latin1, et tu as configuré ton accès à cette
base de telle sorte que les caractères soient transformés en UTF-8 à la
lecture. C'est bien cela ?
Si oui, et si ta base mySQL l'autorise, alors le plus simple serait de
déclarer qu'elle contient du cp1252 plutôt que du latin1. Au passage, ça
te permettrait de gérer aussi les caractères « ¤ », « ½ », et ainsi de
suite (caractères des lignes 80 et 90 de la page citée plus haut).
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
Si tu as besoin d'explications complémentaires, commence par en dire
plus sur le contexte : où est le caractère quand tu dois le traiter,
quels sont les paramètres d'accès à MySQL, quel est le charset de
sauvegarde de ton code PHP, etc.
Le 07/05/2009 08:59, Denis Beauregard a écrit :
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Ce caractère est reconnu par d'autres logiciels que Word, même si c'est
dans un jeu de caractères propriétaire (CP1252 de Microsoft) :
<http://www.miakinen.net/vrac/charsets/?or=4&pr6>.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Présentement, j'ai un htmlentities qui transforme les accents en
entités (la base mySQL est en latin-1 et tout le texte de la page
html que j'ai transformée en PHP est en UTF8). Y a-t-il une
fonction similaire pour les apostrophes ?
Si je comprends bien, l'apostrophe cp1252 est déjà stockée dans la base
censée contenir de l'ISO-Latin1, et tu as configuré ton accès à cette
base de telle sorte que les caractères soient transformés en UTF-8 à la
lecture. C'est bien cela ?
Si oui, et si ta base mySQL l'autorise, alors le plus simple serait de
déclarer qu'elle contient du cp1252 plutôt que du latin1. Au passage, ça
te permettrait de gérer aussi les caractères « ¤ », « ½ », et ainsi de
suite (caractères des lignes 80 et 90 de la page citée plus haut).
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
Si tu as besoin d'explications complémentaires, commence par en dire
plus sur le contexte : où est le caractère quand tu dois le traiter,
quels sont les paramètres d'accès à MySQL, quel est le charset de
sauvegarde de ton code PHP, etc.
Le 07/05/2009 08:59, Denis Beauregard a écrit :
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Ce caractère est reconnu par d'autres logiciels que Word, même si c'est
dans un jeu de caractères propriétaire (CP1252 de Microsoft) :
<http://www.miakinen.net/vrac/charsets/?or=4&pr6>.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Présentement, j'ai un htmlentities qui transforme les accents en
entités (la base mySQL est en latin-1 et tout le texte de la page
html que j'ai transformée en PHP est en UTF8). Y a-t-il une
fonction similaire pour les apostrophes ?
Si je comprends bien, l'apostrophe cp1252 est déjà stockée dans la base
censée contenir de l'ISO-Latin1, et tu as configuré ton accès à cette
base de telle sorte que les caractères soient transformés en UTF-8 à la
lecture. C'est bien cela ?
Si oui, et si ta base mySQL l'autorise, alors le plus simple serait de
déclarer qu'elle contient du cp1252 plutôt que du latin1. Au passage, ça
te permettrait de gérer aussi les caractères « ¤ », « ½ », et ainsi de
suite (caractères des lignes 80 et 90 de la page citée plus haut).
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
Si tu as besoin d'explications complémentaires, commence par en dire
plus sur le contexte : où est le caractère quand tu dois le traiter,
quels sont les paramètres d'accès à MySQL, quel est le charset de
sauvegarde de ton code PHP, etc.
Denis Beauregard wrote:Bonjour,
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
J'utilise (avec plus ou moins de bon résultats) le système suivant:
Denis Beauregard wrote:
Bonjour,
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
J'utilise (avec plus ou moins de bon résultats) le système suivant:
Denis Beauregard wrote:Bonjour,
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
J'utilise (avec plus ou moins de bon résultats) le système suivant:
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
Il faut tester l'une ou l'autre des fonctions, selon l'encodage des
données.
Il faut tester l'une ou l'autre des fonctions, selon l'encodage des
données.
Il faut tester l'une ou l'autre des fonctions, selon l'encodage des
données.
le preg_replace ne fonctionne pas.
Mon code, en gros
$l = mysql_fetch_array ($res);
$s = $ligne["champ"];
preg_replace("/x92/", "’ZZZZZZ", $s);
echo $s;
J'ai ajouté le ZZZZZZ pour bien voir si cela fait quelque chose et
je ne vois rien.
le preg_replace ne fonctionne pas.
Mon code, en gros
$l = mysql_fetch_array ($res);
$s = $ligne["champ"];
preg_replace("/x92/", "’ZZZZZZ", $s);
echo $s;
J'ai ajouté le ZZZZZZ pour bien voir si cela fait quelque chose et
je ne vois rien.
le preg_replace ne fonctionne pas.
Mon code, en gros
$l = mysql_fetch_array ($res);
$s = $ligne["champ"];
preg_replace("/x92/", "’ZZZZZZ", $s);
echo $s;
J'ai ajouté le ZZZZZZ pour bien voir si cela fait quelque chose et
je ne vois rien.
Le 07 May 2009 15:18:55 GMT, Olivier Miakinen <om+
écrivait dans fr.comp.lang.php:Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
le preg_replace ne fonctionne pas.
Le 07 May 2009 15:18:55 GMT, Olivier Miakinen <om+news@miakinen.net>
écrivait dans fr.comp.lang.php:
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
le preg_replace ne fonctionne pas.
Le 07 May 2009 15:18:55 GMT, Olivier Miakinen <om+
écrivait dans fr.comp.lang.php:Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
le preg_replace ne fonctionne pas.
Le 07/05/2009 08:59, Denis Beauregard a écrit :
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Ce caractère est reconnu par d'autres logiciels que Word, même si c'est
dans un jeu de caractères propriétaire (CP1252 de Microsoft) :
http://www.miakinen.net/vrac/charsets/?or=4&pr6.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Présentement, j'ai un htmlentities qui transforme les accents en
entités (la base mySQL est en latin-1 et tout le texte de la page
html que j'ai transformée en PHP est en UTF8). Y a-t-il une
fonction similaire pour les apostrophes ?
Si je comprends bien, l'apostrophe cp1252 est déjà stockée dans la base
censée contenir de l'ISO-Latin1, et tu as configuré ton accès à cette
base de telle sorte que les caractères soient transformés en UTF-8 à la
lecture. C'est bien cela ?
Si oui, et si ta base mySQL l'autorise, alors le plus simple serait de
déclarer qu'elle contient du cp1252 plutôt que du latin1. Au passage, ça
te permettrait de gérer aussi les caractères « ¤ », « ½ », et ainsi de
suite (caractères des lignes 80 et 90 de la page citée plus haut).
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
Si tu as besoin d'explications complémentaires, commence par en dire
plus sur le contexte : où est le caractère quand tu dois le traiter,
quels sont les paramètres d'accès à MySQL, quel est le charset de
sauvegarde de ton code PHP, etc.
Cordialement,
--
Olivier Miakinen
Le 07/05/2009 08:59, Denis Beauregard a écrit :
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Ce caractère est reconnu par d'autres logiciels que Word, même si c'est
dans un jeu de caractères propriétaire (CP1252 de Microsoft) :
http://www.miakinen.net/vrac/charsets/?or=4&pr6.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Présentement, j'ai un htmlentities qui transforme les accents en
entités (la base mySQL est en latin-1 et tout le texte de la page
html que j'ai transformée en PHP est en UTF8). Y a-t-il une
fonction similaire pour les apostrophes ?
Si je comprends bien, l'apostrophe cp1252 est déjà stockée dans la base
censée contenir de l'ISO-Latin1, et tu as configuré ton accès à cette
base de telle sorte que les caractères soient transformés en UTF-8 à la
lecture. C'est bien cela ?
Si oui, et si ta base mySQL l'autorise, alors le plus simple serait de
déclarer qu'elle contient du cp1252 plutôt que du latin1. Au passage, ça
te permettrait de gérer aussi les caractères « ¤ », « ½ », et ainsi de
suite (caractères des lignes 80 et 90 de la page citée plus haut).
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
Si tu as besoin d'explications complémentaires, commence par en dire
plus sur le contexte : où est le caractère quand tu dois le traiter,
quels sont les paramètres d'accès à MySQL, quel est le charset de
sauvegarde de ton code PHP, etc.
Cordialement,
--
Olivier Miakinen
Le 07/05/2009 08:59, Denis Beauregard a écrit :
Quelqu'un a saisi un certain texte dans un fichier word, puis recopier
ces lignes dans une base mySQL. word a le défaut de transformer les
apostrophes en un caractère reconnu par word seulement.
Ce caractère est reconnu par d'autres logiciels que Word, même si c'est
dans un jeu de caractères propriétaire (CP1252 de Microsoft) :
http://www.miakinen.net/vrac/charsets/?or=4&pr6.
Y a-t-il une méthode simple pour corriger ces apostrophes ?
Présentement, j'ai un htmlentities qui transforme les accents en
entités (la base mySQL est en latin-1 et tout le texte de la page
html que j'ai transformée en PHP est en UTF8). Y a-t-il une
fonction similaire pour les apostrophes ?
Si je comprends bien, l'apostrophe cp1252 est déjà stockée dans la base
censée contenir de l'ISO-Latin1, et tu as configuré ton accès à cette
base de telle sorte que les caractères soient transformés en UTF-8 à la
lecture. C'est bien cela ?
Si oui, et si ta base mySQL l'autorise, alors le plus simple serait de
déclarer qu'elle contient du cp1252 plutôt que du latin1. Au passage, ça
te permettrait de gérer aussi les caractères « ¤ », « ½ », et ainsi de
suite (caractères des lignes 80 et 90 de la page citée plus haut).
Mais si l'accès à la base te retourne du latin1 et que tu le transformes
toi-même en UTF-8 par utf8_encode(), alors soit tu remplaces l'appel à
utf8_encode par un appel à iconv("CP1252", "UTF-8", ...), soit tu fais
d'abord un preg_replace("/x92/", "’", ...) avant de convertir.
Si tu as besoin d'explications complémentaires, commence par en dire
plus sur le contexte : où est le caractère quand tu dois le traiter,
quels sont les paramètres d'accès à MySQL, quel est le charset de
sauvegarde de ton code PHP, etc.
Cordialement,
--
Olivier Miakinen