ajax 总是以 utf-8 字符集发送数据
所以你需要在 gbk 程序中对传入的数据进行编码转换
$filename = iconv('utf-8', 'gbk', $_REQUEST['username']);
如果你向 ajax 返回的是 gbk 的内容,则需加上字符集声明的头
header('Content-type: text/html;charset=GBK');不清楚 $file 变量的值的来源,可能对他做编码转换要简单些
所以你需要在 gbk 程序中对传入的数据进行编码转换
$filename = iconv('utf-8', 'gbk', $_REQUEST['username']);
如果你向 ajax 返回的是 gbk 的内容,则需加上字符集声明的头
header('Content-type: text/html;charset=GBK');不清楚 $file 变量的值的来源,可能对他做编码转换要简单些
多谢这位大哥的指点。$file就是php遍历的文件名,用了iconv的。
$file=iconv('gb2312','UTF-8',$file);应该都是UTF-8,但还是不行。
至少需要
$file = iconv('gbk', 'UTF-8', $file);
才不会被截断再说,你一定就有文件名中包含“土”字的文件吗?