从MySQL DB将中文单词导出为CSV

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从MySQL DB将中文单词导出为CSV相关的知识,希望对你有一定的参考价值。

这是我的代码:

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 .="
";

// Get Records from the table

while ($row = mysql_fetch_array($sql)) {
for ($i = 0; $i < $columns_total; $i++) {

$output .='"'.$row["$i"].'",';

}
$output .="
";
}

$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 "xEFxBBxBF"; // UTF-8 BOM
print $output;
exit;

In my DB: 测试一下

我是csv:æ'æ〜¯

当我尝试使用php下载一个csv时,我搞乱了csv数据与不可读的格式“æ'æ〜”等。

我需要从MySQL数据库中导出csv / xsl格式的中文单词。

提前致谢。

答案

一个简单的解决方法是使用Google电子表格。粘贴(仅当您具有复杂公式时的值)或导入工作表然后下载CSV。我只是试了几个角色而且效果很好。

注意:Google表格在导入时确实存在限制。见here.

注意:请注意Google表格中的敏感数据。

编辑:另一个qazxsw poi - 基本上他们使用VBA宏或插件来强制保存为UTF8。我没有尝试过任何这些解决方案,但它们听起来很合理。

另一答案

qazxsw poi是qazxsw poi的“Mojibake”。有关该常见问题及其原因的讨论,请参阅qazxsw poi。

在中文中,一些字符需要4字节的UTF-8字符。为此,你需要MySQL中的alternative

以上是关于从MySQL DB将中文单词导出为CSV的主要内容,如果未能解决你的问题,请参考以下文章

将mysql数据导出到csv时不要将NULL值转换为空字符串

使用 PHP/PDO 将大型 MySQL 表导出为 CSV

将 JSON 数据从 MySQL 表导出到 CSV

将MySQL查询结果导出到CSV

使用 PHP/MySQL 导出大型 CSV 数据的最佳方法是啥?

使用PHP导入和导出CSV文件