您好,欢迎访问一九零五行业门户网

Ms sql读取出数据,显示在网页上乱码!

我是直接在php里mssql_connect连接ms sql 数据,查询资料只要你使用的是php自带的那个mssql,那读出来的数据编码格式一定是gbk,这是因为mssql自身只有gbk的编码,且不能定义
while($row = mssql_fetch_row($result)){
    echo iconv('gb2312','utf-8',$row[0]);
}
为什么输出的还是乱码?????
用了  set names 也不行啊。
回复讨论(解决方案) 你
$row = mssql_fetch_row($result);
echo base64_encode(serialize($row));
贴出结果
yto1ontpoja7czoxndoiewbjempqqc100thtunuio2k6mttzojg6itd41bnn6rpjijtpoji7czoxmdoimjaxmi0xms0xosi7atozo3m6mtoimsi7ato0o047fq==
array( [0] =>  ??┩t?1 [1] => 续展完成 [2] => 2012-11-19 [3] => 1 [4] => )

你在 mssql 管理器中看到的对应 $row[0] 的字段的内容是什么?
保证网页编码 和meta 设定编码和数据库字符编码 应该就不会错了
array( [0] =>  ??┩t?1 [1] => 续展完成 [2] => 2012-11-19 [3] => 1 [4] => )

你在 mssql 管理器中看到的对应 $row[0] 的字段的内容是什么?
你转换出来的数据是正确 的,数组0怎么还是乱码,还有我mysql是utf8 的,我这样做了转换
$fztdm =  iconv('gb2312','utf-8',$mssql_row['ftmid']);
插入数据库也成乱码了:{j馓â 数据你你给的,我只是解码查看而已
元素0在拿到时就已经乱码了,所以你应该在mssql管理器中查看原始内容。
只有这样才能判断出现乱码的原因
数据你你给的,我只是解码查看而已
元素0在拿到时就已经乱码了,所以你应该在mssql管理器中查看原始内容。
只有这样才能判断出现乱码的原因
元素原始内容是0x1306c910ca6aa9cd74d131d350d5
解码是用:base64_decode吗? 添加数据的时候乱码,你再怎么转码就是徒劳的,要从源头解决问题。
嗯,你这个字段是主键吧?
这个字段的值对于 mysql 已经没有什么意义了
嗯,你这个字段是主键吧?
这个字段的值对于 mysql 已经没有什么意义了
元素1的要怎么转换编码插入mysql 我用 mb_convert_encoding和iconv转换插入都不行,mysql是utf8的
不需要转换,读回的数据是 gbk 的
所以,你只需在循环读取、插入前执行 mysql_query('set names gbk'); 一次即可
不需要转换,读回的数据是 gbk 的
所以,你只需在循环读取、插入前执行 mysql_query('set names gbk'); 一次即可
之前我也进行转换了呢,奇怪。
其它类似信息

推荐信息