我试图从包含德语字符的数据库中显示一个MySQL行,但它在CSV文件中显示如下所示的输出所有英文字符都正常工作我不知道我哪里出错了。任何帮助将不胜感激。
Output: Ö/öÖ/öÖ/ö Ö/öÖ/öÖ/öÖ/ö Ö/öÖ/ö Ö/öÖ/öÖ/ö Ö/öÖ/öÖ/ö Ö/öÖ/Ã
Input: Ö/öÖ/öÖ/ö Ö/öÖ/ö Ö/öÖ/öÖ/ö Ö/öÖ/öÖ/öÖ/ö Ö/öÖ/öÖ/ö Ö/öÖ/ö
$sql = "SELECT forename,surname,company,address,phone,email FROM `user_data`";
$result = mysqli_query($con,$sql);
$fp = fopen('php://output','w');
$fields=array("forename","surname","company","address","phone","email");
fputcsv($fp, $fields);
while ($list = mysqli_fetch_assoc($result)) {
fputcsv($fp, $list);
}
header('Content-Type: text/plain; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');
答案 0 :(得分:1)
首先,您必须确保数据库列/表的编码具有正确的字符集:
SHOW CREATE TABLE Tablename;
第二:当您将数据插入表格时,您必须确保您使用的编码也是utf8。