[php]fopen中文文件名亂碼問題

一般在php中會使用fopen進行生成文件,但是當文件名存在中文時保存文件會出現(xiàn)中文亂碼。
源代碼:

<?php
$fileName = __DIR__ . '\測試.txt';
$fp = fopen($fileName, 'w');
fwrite($fp, '這是中文內容');
fclose($fp);
echo $fileName.'<br>';
if(file_exists($fileName)){
    echo 'hhhhh';
}
?>

結果:


文件名是亂碼

解決:
對文件名進行編碼。

<?php
$fileName = __DIR__ . '\測試.txt';
$fileName = iconv('UTF-8', 'GBK', $fileName);
$fp = fopen($fileName, 'w');
fwrite($fp, '這是中文內容');
fclose($fp);
echo $fileName.'<br>';
if(file_exists($fileName)){
    echo 'hhhhh';
}
?>

結果:


文件名非亂碼

但是看頁面輸出的文件名:


輸出的文件名為亂碼

所以當要在頁面上輸出文件名又需要保存文件時,可以先保存原先的中文文件名,再通過文件名編碼進行創(chuàng)建文件。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • php.ini設置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 6,834評論 3 64
  • 大家在JSP的開發(fā)過程中,經(jīng)常出現(xiàn)中文亂碼的問題,可能一至困擾著大家,現(xiàn)把JSP開發(fā)中遇到的中文亂碼的問題及解決辦...
    七寸知架構閱讀 4,469評論 0 52
  • 一、php可以做什么 php是一種可以在服務器端運行的編程語言,可以運行在Web服務器端。 php是一門后臺編程語...
    空谷悠閱讀 3,142評論 4 97
  • 又是國慶,好像對于現(xiàn)在的年輕人來說,國慶的意義就是一個長假,對于愛旅游的人來說,就是黃金周,對于要開車出行...
    陳建龍閱讀 835評論 2 2
  • 現(xiàn)代醫(yī)學認為肝臟是人體中最大的消化腺,也是人體新陳代謝最旺盛的器官,還具有解毒、免疫、造血的功能,就像是個巨大的“...
    擁抱幸福a閱讀 475評論 0 0