У меня есть строка mysql с utf8_general_ci
сортировка, когда я экспортирую ее в csv, вместо правильных символов utf-8 я получаю Ć…ā€¦I
и т. Д., Как сделать Excel лучше понять UTF-8 кодирование вот мой код:Экспорт данных из MySQL в Excel с кодировкой UTF-8
$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";
}
Как экспортировать его, чтобы получить все символы отображаются правильно (сделать Excel понимать UTF-8), а также для поддержания макет таблицы тоже (со строками и столбцами)
Вы можете попробовать установить заголовок спецификации UTF-8, но вы также можете посмотреть на файл реального Excel (BIFF .xls или OfficeOpenXML .xlsx), который устранит такие проблемы, предоставив Excel файлу в собственном формате –