环境:
php,英文版 mssql2005,通过odbc连接<META   http-equiv="Content-Type"   content="text/html;   charset=unicode">
........
echo "<br><b>".$t."</b>";//这里正常显示简体繁体中文
$conn=odbc_connect('cn','user','pass');
$sql="update filelist set allfiles='".$t."' where filename='".$tt."'";
echo "<br><b>debug: $sql</b>";//这里正常显示简体繁体中文
odbc_exec($conn,$sql);
odbc_close($conn);然后从数据库里select出来的就是乱码了
尝试过改成
$sql="update filelist set allfiles=N'".$t."' where filename='".$tt."'";
也不行,filelist为nvarchar字段我直接复制网页上echo出来的sql语句到数据库里执行就一切正常。请教各位高手,应该怎么处理阿?

解决方案 »

  1.   

    你检查一下你页面的保存编码,是不是utf8的
    如果不是则要更改为utf8 然后在你odbc_exec执行所有的SQL语句前,执行 set names utf8
      

  2.   

    sql server 不能用set names utf8设定字符集吧。
    http://topic.csdn.net/u/20071010/11/d33e7289-e28f-4c93-b76d-bd36b2c83394.html
      

  3.   


    我是用uedit编辑的 怎么看保存编码阿?
      

  4.   

    有记事本也行,打开文件,选择另存为,会出来个提示框要你选择存在那,最下面好像就是字符集,你选下UTF-8就行了
      

  5.   

    保存编码改了还是不行
    我用print_r(iconv_get_encoding());得到的结果是:
    Array ( [input_encoding] => ISO-8859-1 [output_encoding] => ISO-8859-1 [internal_encoding] => ISO-8859-1 )
    这个说明什么啊?