Exportation de données de MySQL vers Excel avec l'encodage UTF-8

J'ai une base de données mysql ligne avec utf8_general_ci classement, quand je l'exporter au format csv, au lieu de corriger les caractères utf-8-je obtenir Ć…ā€¦I etc, comment faire excel comprendre le codage UTF-8 voici mon code:

$conn = mysql_connect('localhost', 'root', 'asdfggh') or die(mysql_error());
mysql_query("SET CHARACTER SET utf8"); 
mysql_query("SET NAMES utf8"); 
mysql_select_db('table_name', $conn) or die(mysql_error($conn));

$query = sprintf('SELECT * FROM sudraba_birzs');
$result = mysql_query($query, $conn) or die(mysql_error($conn));

header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
header('Content-Disposition: attachment; filename="'.date("d-m-Y_H:i") . '.csv'.'"'); 
echo "\xef\xbb\xbf";

$row = mysql_fetch_assoc($result);
if ($row) {
    echocsv(array_keys($row));
}

while ($row) {
    echocsv($row);
    $row = mysql_fetch_assoc($result);
}

function echocsv($fields)
{
    $separator = '';
    foreach ($fields as $field) {
        if (preg_match('/\\r|\\n|,|"/', $field)) {
            $field = '"' . str_replace('"', '""', $field) . '"';
        }
        echo $separator . $field;
        $separator = ',';
    }
    echo "\r\n";
}

Comment l'exporter pour obtenir tous les caractères s'affichent correctement (faire Excel comprendre utf-8) et de maintenir la disposition de table de trop(avec des lignes et des colonnes)

Vous pouvez essayer de définir un codage UTF-8 BOM-tête, mais vous pouvez également découvrir l'écriture d'un véritable fichier Excel (BIFF .xls ou OfficeOpenXML .xlsx) qui permettra d'éliminer ces problèmes en fournissant Excel avec un fichier dans son format d'origine

OriginalL'auteur bukowski | 2013-06-14