我在做一套系统 ,要支持不同语言 如(中文,日文,韩文),现在遇到的问题是,用日文文件名上传的文件,在中文系统中下载下来后,文件名变成乱码,有什么办法可以解决

解决方案 »

  1.   

    保存用临时名:如数字
    真实名存数据库试试utf-8编码
      

  2.   

    没有用的,
             include_once("../../include/config.php"); $FilePath = $_GET["FilePath"];
    $FileName = $_GET["FileName"]; $fileName = $FileName;
    $filePath = $FilePath; $filePathInFileSystem = iconv("UTF-8",FILESYSTEMCHARSET,$filePath); if(!file_exists($filePathInFileSystem)){
    Header("Content-Disposition:attachment;filename=error.txt");
    print "Warning:$filePath isn't exists!";
    exit;
    } $clientFileSystemCharSet = "UTF-8";
    if(eregi("(win|microsoft)",$_SERVER["HTTP_USER_AGENT"])){
    $acceptLanguage = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
    if(strpos($acceptLanguage,"zh-cn")===0){
    $clientFileSystemCharSet = "GBK";
    }elseif(strpos($acceptLanguage,"ja")===0){
    $clientFileSystemCharSet = "Shift-JIS";
    }elseif(strpos($acceptLanguage,"ko")===0){
    $clientFileSystemCharSet = "UHC";
    }else{
    $clientFileSystemCharSet = "ASCII";
    }
    } $fileNameInClientFileSystem = iconv("UTF-8",$clientFileSystemCharSet,$fileName);
    header("Content-type:application/octet-stream");
    header("Content-Disposition:attachment;filename=".$fileNameInClientFileSystem); header("Content-length: ".filesize($filePathInFileSystem));
    readfile($filePathInFileSystem);
    文件名用UTF-8,系统无法生成文件名,我现在是这么写的,中文下 日韩都没有问题了,但日文下 中文文件名显示就有问题了
      

  3.   

    从网页到数据库,都用UTF-8。
    这样的话在程序方面,就不需要考虑编码转换的问题了。
      

  4.   

    这个问题相当复杂...建议使用ftp保存文件