这是我的代码:
mysql_set_charset("utf8");
mysql_query("SET NAMES utf8");
header('Content-Type: text/html; charset=utf-8');
mysql_connect("localhost","root","");
mysql_select_db("ladli");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");
$output = "";
$table = "";
$sql = mysql_query("select * from table'");
mysql_query("SET NAMES utf8");
$columns_total = mysql_num_fields($sql);
for ($i = 0; $i < $columns_total; $i++) {
$heading = mysql_field_name($sql, $i);
$output .= '"'.$heading.'",';
}
$output .="\n";
// Get Records from the table
while ($row = mysql_fetch_array($sql)) {
for ($i = 0; $i < $columns_total; $i++) {
$output .='"'.$row["$i"].'",';
}
$output .="\n";
}
$filename = "chinese_test.csv";
header('Content-Description: File Transfer');
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=".$filename.".csv");
header('Content-Transfer-Encoding: binary');
header('Pragma: public');
print "\xEF\xBB\xBF"; // UTF-8 BOM
print $output;
exit;
在我的数据库中 测试一下
我是csv: æ'æ~¯
当我尝试使用PHP下载csv时,我会搞乱csv数据,使用不可读的格式“æ'æ〜”等等。
我需要从MySQL数据库中导出csv / xsl格式的中文单词。
提前致谢。
答案 0 :(得分:0)
一个简单的解决方法是使用Google电子表格。粘贴(仅当您具有复杂公式时的值)或导入工作表然后下载CSV。我只是尝试了几个角色而且效果很好。
注意:Google表格在导入时确实存在限制。见here.
注意:请注意Google表格中的敏感数据。
编辑:另一个alternative - 基本上他们使用VB宏或插件来强制保存为UTF8。我没有尝试过这些解决方案,但听起来很合理。
答案 1 :(得分:0)
我是
是我是
的“Mojibake”。有关该常见问题及其原因的讨论,请参阅Trouble with UTF-8 characters; what I see is not what I stored。
在中文中,一些字符需要4字节的UTF-8字符。为此,您需要在MySQL中使用utf8mb4
。