ajax 总是以 utf-8 字符集发送数据
所以你需要在 gbk 程序中对传入的数据进行编码转换
$filename = iconv('utf-8', 'gbk', $_REQUEST['username']);
如果你向 ajax 返回的是 gbk 的内容,则需加上字符集声明的头
header('Content-type: text/html;charset=GBK');不清楚 $file 变量的值的来源,可能对他做编码转换要简单些

解决方案 »

  1.   


    多谢这位大哥的指点。$file就是php遍历的文件名,用了iconv的。
    $file=iconv('gb2312','UTF-8',$file);应该都是UTF-8,但还是不行。
      

  2.   

    gb2312 字符集远小于 utf-8 字符集
    至少需要
    $file = iconv('gbk', 'UTF-8', $file);
    才不会被截断再说,你一定就有文件名中包含“土”字的文件吗?
      

  3.   

    var_dump(array($file,$filename));调试的时候,打印值看看。