PHP保存文件时文件名乱码与Windows-Server

在帮导师开发一个校内应用时,由于Windows Server是中文版,Web应用是UTF8的,上传文件后服务器显示乱码。

原因是Windows Server中文版的字符集是GBK,使用以下代码可以解决:

$name = iconv("UTF-8", "GBK//ignore", $name);

几个常用的字符集:

  • GB2312: 7445个符号,包括6763个汉字
  • GBK: GB2312的扩展,可表示21886个字符
  • GB18030:兼容GBK,此外包含日韩,繁体汉字,可表示27484个文字
  • BIG5:统一繁体字编码,13053个汉字
  • UNICODE: 为世界650种语言进行统一编码,兼容ISO-8859-1, 由多个编码方式:UTF-8,UTF-16,UTF-32