环境为: linux redhat 5.4 ,php+freetds+mssql 2005 server//*****************************************************$value=iconv("GB2312","UTF-8",$row[iconv("UTF-8","GB2312",$field)]);
echo "<td>";   //  如果$field 字段在 mssql 2005 为null 值时 ,下面的句话不执行
echo $value;//  如果$field 字段在 mssql 2005 为null 值时 ,下面的句话不执行echo "</td>"//  如果$field 字段在 mssql 2005 为null 值时 ,下面的句话不执行
//****************************
echo "<br>";
//echo "waredatememo:".$test["waredatememo"] ;
echo "<br>";
echo  iconv("GB2312","UTF-8",$row[iconv("UTF-8","GB2312",$field)]) or  die("MSG results:".mssql_get_last_message());其中$field 字段时 mssql 2005 中是 null 值。用上面的语句测试时,web  页只显示:"MSG results:"     后面没有任何消息!求解!....

解决方案 »

  1.   

    不太明白你在说什么?如果字段允许为空,则应在 sql 指令中用 isnull 判断
    空值在查询后已转换成长度为 0 的串。除非你使用 PDO ,并显式的声明了对 NULL 的处理方式utf-8 字符集与 gb2312 字符集不对等,在两者之间进行转换时,必然会出现内容缺失的情况utf-8 与 cp936 对等,使用简单的移位运算即可实现转换
    cp936 与 gbk 对等,使用对照表进行转换所以 utf-8 与 gbk 对等,gb2312 只是 gbk 的一个子集
      

  2.   


    select * from table where field  is null
      

  3.   

    查询出结果后用empty判断!因为结果是数组,你没法直接用==''或者==0来判断