par
Choucas » 09 mars 2017, 14:38
Bonjour,
Problématique : automatisation de l'injection de documents .doc et .odt dans MySql pour publication avec spip.
Problème : gestion des caractères spécifiques à la langue française.
Lors du développement du module php, en écriture de contrôle à l'écran ou dans une page html, des caractères spécifiques à la langue française (rassemblés dans $spec) apparaissent, parfois, de façon non identifiable.
L'écriture de $spec est correcte mais l'écriture caractère par caractère donne n'importe quoi, le transfert via ord() et retour par chr() encore n'importe quoi.
Avant d'injecter plus de 500 documents, je souhaite minimiser la mise en forme finale.
Par quel bout prendre la chose ?
Merci de votre aide.
------------------------------------------------------------------------------------
Code : Tout sélectionner
echo "\n\n\n\n\n\n";
echo "encodage par défaut : " . mb_internal_encoding() . "\n";
echo "-----------------\n";
$spec = "àæçéèêëîïôœùûüÿ";
echo "encodage de ". $spec ." : " . mb_detect_encoding ($spec) . "\n";
$franc = str_split ($spec) ;
echo "-----------iconv UTF-8------------\n";
echo iconv('ASCII', 'UTF-8', $spec) . "\n";
echo "------------Brut-----------\n";
echo $spec . "\n" ;
echo "-------------Lettre par lettre----------\n";
foreach ($franc as $val)
{
echo $val . "=>" . ord($val) . "/" . chr(ord($val)).", ";
}
echo "\n" ;
for($i = 1; $i < strlen($spec); $i++)
{
echo " " . substr($spec, $i, 1) . ", ";
}
echo "\n\n\n\n\n\n";
Résultat
Code : Tout sélectionner
encodage par défaut : UTF-8
-----------------
encodage de àæçéèêëîïôœùûüÿ : UTF-8
-----------iconv UTF-8------------
PHP Notice: iconv(): Detected an illegal character in input string in /home/jean-max/ChantierSites/Amap/Injection/test.php on line 9
------------Brut-----------
àæçéèêëîïôœùûüÿ
-------------Lettre par lettre----------
�=>195/�, �=>160/�, �=>195/�, �=>166/�, �=>195/�, �=>167/�, �=>195/�, �=>169/�, �=>195/�, �=>168/�, �=>195/�, �=>170/�, �=>195/�, �=>171/�, �=>195/�, �=>174/�, �=>195/�, �=>175/�, �=>195/�, �=>180/�, �=>197/�, �=>147/�, �=>195/�, �=>185/�, �=>195/�, �=>187/�, �=>195/�, �=>188/�, �=>195/�, �=>191/�,
�, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �,
Configuration : PHP Version => 7.0.15-0ubuntu0.16.04.4
Bonjour,
Problématique : automatisation de l'injection de documents .doc et .odt dans MySql pour publication avec spip.
Problème : gestion des caractères spécifiques à la langue française.
Lors du développement du module php, en écriture de contrôle à l'écran ou dans une page html, des caractères spécifiques à la langue française (rassemblés dans $spec) apparaissent, parfois, de façon non identifiable.
L'écriture de $spec est correcte mais l'écriture caractère par caractère donne n'importe quoi, le transfert via ord() et retour par chr() encore n'importe quoi.
Avant d'injecter plus de 500 documents, je souhaite minimiser la mise en forme finale.
Par quel bout prendre la chose ?
Merci de votre aide.
------------------------------------------------------------------------------------
[code]
echo "\n\n\n\n\n\n";
echo "encodage par défaut : " . mb_internal_encoding() . "\n";
echo "-----------------\n";
$spec = "àæçéèêëîïôœùûüÿ";
echo "encodage de ". $spec ." : " . mb_detect_encoding ($spec) . "\n";
$franc = str_split ($spec) ;
echo "-----------iconv UTF-8------------\n";
echo iconv('ASCII', 'UTF-8', $spec) . "\n";
echo "------------Brut-----------\n";
echo $spec . "\n" ;
echo "-------------Lettre par lettre----------\n";
foreach ($franc as $val)
{
echo $val . "=>" . ord($val) . "/" . chr(ord($val)).", ";
}
echo "\n" ;
for($i = 1; $i < strlen($spec); $i++)
{
echo " " . substr($spec, $i, 1) . ", ";
}
echo "\n\n\n\n\n\n";
[/code]
Résultat
[code]
encodage par défaut : UTF-8
-----------------
encodage de àæçéèêëîïôœùûüÿ : UTF-8
-----------iconv UTF-8------------
PHP Notice: iconv(): Detected an illegal character in input string in /home/jean-max/ChantierSites/Amap/Injection/test.php on line 9
------------Brut-----------
àæçéèêëîïôœùûüÿ
-------------Lettre par lettre----------
�=>195/�, �=>160/�, �=>195/�, �=>166/�, �=>195/�, �=>167/�, �=>195/�, �=>169/�, �=>195/�, �=>168/�, �=>195/�, �=>170/�, �=>195/�, �=>171/�, �=>195/�, �=>174/�, �=>195/�, �=>175/�, �=>195/�, �=>180/�, �=>197/�, �=>147/�, �=>195/�, �=>185/�, �=>195/�, �=>187/�, �=>195/�, �=>188/�, �=>195/�, �=>191/�,
�, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �, �,
[/code]
Configuration : PHP Version => 7.0.15-0ubuntu0.16.04.4