使用 unicode 字符从 mysql 导出数据
Export data from mysql with unicode characters
<?php
include('db.php');
//header to give the order to the browser
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=exported-data.csv');
//select table to export the data
$select_table=mysql_query('select * from User');
$rows = mysql_fetch_assoc($select_table);
if ($rows)
{
getcsv(array_keys($rows));
}
while($rows)
{
getcsv($rows);
$rows = mysql_fetch_assoc($select_table);
}
// get total number of fields present in the database
function getcsv($no_of_field_names)
{
$separate = '';
// do the action for all field names as field name
foreach ($no_of_field_names as $field_name)
{
if (preg_match('/\r|\n|,|"/', $field_name))
{
$field_name = '' . str_replace('', $field_name) . '';
}
echo $separate . $field_name;
//sepearte with the comma
$separate = ',';
}
//make new row and line
echo "\r\n";
}
?>
您好,请帮我解决 Unicode 问题。上面的脚本工作正常,它导出了我需要的所有内容,但是所有以 Unicode 编写的数据都导出为:“????????”
谁能帮我修改这个脚本?
谢谢。
将 table 排序规则更改为 UTF8
在header中添加:
header('Content-Transfer-Encoding: binary');
header("Content-Type: text/csv; charset=utf-8")
您也可以尝试 mb_convert_encoding()。
你也可以检查这个link。How can I output a UTF-8 CSV in PHP that Excel will read properly?
<?php
include('db.php');
//header to give the order to the browser
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=exported-data.csv');
//select table to export the data
$select_table=mysql_query('select * from User');
$rows = mysql_fetch_assoc($select_table);
if ($rows)
{
getcsv(array_keys($rows));
}
while($rows)
{
getcsv($rows);
$rows = mysql_fetch_assoc($select_table);
}
// get total number of fields present in the database
function getcsv($no_of_field_names)
{
$separate = '';
// do the action for all field names as field name
foreach ($no_of_field_names as $field_name)
{
if (preg_match('/\r|\n|,|"/', $field_name))
{
$field_name = '' . str_replace('', $field_name) . '';
}
echo $separate . $field_name;
//sepearte with the comma
$separate = ',';
}
//make new row and line
echo "\r\n";
}
?>
您好,请帮我解决 Unicode 问题。上面的脚本工作正常,它导出了我需要的所有内容,但是所有以 Unicode 编写的数据都导出为:“????????”
谁能帮我修改这个脚本?
谢谢。
将 table 排序规则更改为 UTF8
在header中添加:
header('Content-Transfer-Encoding: binary'); header("Content-Type: text/csv; charset=utf-8")
您也可以尝试 mb_convert_encoding()。
你也可以检查这个link。How can I output a UTF-8 CSV in PHP that Excel will read properly?