Vérifiez toujours votre encodage en premier! Vous ne devriez jamais faire confiance aveuglément à votre encodage (même si c'est à partir de votre propre site Web!):
function convert_cp1252_to_utf8($input, $default = '') {
if ($input === null || $input == '') {
return $default;
}
// https://en.wikipedia.org/wiki/UTF-8
// https://en.wikipedia.org/wiki/ISO/IEC_8859-1
// https://en.wikipedia.org/wiki/Windows-1252
// http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT
$encoding = mb_detect_encoding($input, array('Windows-1252', 'ISO-8859-1'), true);
if ($encoding == 'ISO-8859-1' || $encoding == 'Windows-1252') {
/*
* Because ISO-8859-1 and CP1252 are identical except for 0x80 through 0x9F
* and control characters, always convert from Windows-1252 to UTF-8.
*/
$input = iconv('Windows-1252', 'UTF-8//IGNORE', $input);
}
return $input;
}
S'il vous plaît montrer quelques données de code et d'exemple. –
Les deux caractères '' 'et' 'ne sont pas contenus dans [ISO 8859-1] (http://en.wikipedia.org/wiki/ISO/IEC_8859-1). Alors quel encodage utilisez-vous? – Gumbo