mysql 数据导出到excel 为什么汉字变成问号

<?php/* *Createdon2010-3-26 * *Tochangethetemplateforthisgeneratedf... <?php/* * Created on 2010-3-26 * * To change the template for this generated file go to * Window - Preferences - PHPeclipse - PHP - Code Templates */$sep = "\t";$crlf = "\n";$conn = @mysql_connect("localhost", "root", "") or die("不能连接数据库");@mysql_select_db("access", $conn);header("Content-Type: application/vnd.ms-excel");header("Content-Disposition: attachment; filename=test.xls");header("Pragma: no-cache");header("charset:utf-8");header("Expires: 0");$query = "select * from message";$result = mysql_query($query) or die(mysql_error());$fields = mysql_num_fields($result);for($i = 0; $i < $fields; $i++) {    echo mysql_field_name($result, $i) . $sep;}echo $crlf;while($row = mysql_fetch_row($result)) {    $line ="";    for($i = 0; $i<$fields; $i++) {        $line .= $row[$i] . $sep;    }    echo $line . $crlf;}?> 展开
 我来答
一点设计演示
高粉答主

2016-01-06 · 职场/教育各类模板,衷于原创
一点设计演示
采纳数:874 获赞数:83613

向TA提问 私信TA
展开全部

出现乱码是因为mysql设置编码GB2312 后,在navicat里连接要要选择mysql默认字符集,创建数据库时候选默认字符集,创建表的varchar字段(或其他字符字段)都不用选择编码,系统默认gbk编码,就不会出现乱码了。

  如果已经创建好了表乱码就要把UTF8、gbk、gbk2312编码都调整过来才可以,特别是要大概设计表,把有关字符的字段每个都设置改为gbk即可。

pgy8288
2012-04-20 · TA获得超过918个赞
知道小有建树答主
回答量:1097
采纳率:0%
帮助的人:160万
展开全部
excel 默认使用操作系统本地字符集,简体中文环境为GB2312
MySQL要看服务器设置,很多人会设置为UTF-8,以便兼容更多的字符集。
可以通过show variables like '%character%'; 查看当前数据库的字符集信息。
根据需要转换connection的、client的字符集。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
织丰德
2015-10-22 · 超过16用户采纳过TA的回答
知道答主
回答量:50
采纳率:60%
帮助的人:21.3万
展开全部
如果使用的是Navicat,在导出的时候选择”高级“,然后选择编码为ANSI
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xt_zsh
2012-04-17 · 超过24用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:47.3万
展开全部
估计是编码格式的的问题 看看你数据的用的什么格式 导出的时候也用一种格式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
子石500
2012-04-27 · TA获得超过329个赞
知道小有建树答主
回答量:451
采纳率:100%
帮助的人:139万
展开全部
编码问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式