PHP讀取中文名稱檔案亂碼,無法讀取檔案內容

發布 旅遊 2024-06-29
18個回答
  1. 匿名使用者2024-01-30

    如果您的 PHP 檔案在 WIN 下執行並且您的 PHP 檔案是 UTF-8 編碼,就會發生這種情況!

    原因是在win作業系統下,檔案或資料夾的名稱是用GBK或GB2312編碼的!

    而且中文有編碼差異,gb2312,乙個中文是2個位元組,乙個中文是2個位元組,乙個中文是3個位元組,這個區別,那麼你的php**肯定看不懂中文名稱檔案!

    解決方法是:

    首先,PHP 檔案以 GB2312 編碼。

    其次,嘗試將中文名稱轉換為GB2312編碼,例如,如下**:

    fn = fopen( mb_convert_encoding('建立新的文字文件。 txt', 'gb2312', 'utf-8'), 'rt');

    實際上,個人更喜歡使用檔案 get contents() 函式!

    此函式比使用 fopen 函式更簡潔。

    例外題外話:中文漢字(包括中文標點符號)在每種編碼下都不一樣,雖然不管是什麼編碼,你用眼睛看,都是一樣的,但對於計算機來說就不一樣了,電腦本身處理不了中文,它必須將中文轉換成位元組或其他基礎資料,這樣才能處理。 所以編碼不同,中文的效果也不同!

    還有英文字母和數字,編碼沒有問題!

    通常,除非有特殊需要,否則使用中文命名檔名或目錄名是禁忌! 一般也沒有人這樣做!

  2. 匿名使用者2024-01-29

    編碼。

    您需要轉換中文目錄或檔名的編碼。

    使用 mb convert 編碼進行轉換。

  3. 匿名使用者2024-01-28

    大多數程式語言不支援中文名稱,建議改成英文名稱,如果你覺得不是所有的檔案都是英文的,我會告訴你乙個方法,上傳時重新命名檔案,通常用時間戳命名。 同時,讀取原始檔名並將其寫入資料庫進行注釋。 資料庫中有兩個字段放置檔名,乙個是中文注釋,這是原始中文名稱。

    第二個是修改後的檔名。 當程式需要讀取檔案**時,請使用修改後的檔名。 當您需要顯示中文名稱時,您可以獲取注釋字段。

    如果您有大量帶有中文名稱的檔案,那麼您需要等待重大更改。 即使現在沒有問題,但當它出錯時,你不知道如何改變它。

  4. 匿名使用者2024-01-27

    php 檔案不能是中文名稱。

  5. 匿名使用者2024-01-26

    視窗是用GB2312編碼的,你的PHP檔案應該是UTF-8的,所以在你寫的時候,你需要轉換編碼$dir=iconv("utf-8","gb2312",$dir);

    但別忘了,您使用的是 UTF-8 編碼,因此您在第 6 行犯了乙個錯誤,將 GB2312 轉換為 UTF-8。

  6. 匿名使用者2024-01-25

    如果中文檔名是亂碼,則表示您的標題標題未設定為字元編碼。

  7. 匿名使用者2024-01-24

    更改檔案 UTF-8 的編碼格式

  8. 匿名使用者2024-01-23

    應該是你**寫錯了位置,你去掉了html結構就放PHP試試。。

    我已經測試過了,是的,餅乾是這樣的。 在他之上沒有別的東西。

  9. 匿名使用者2024-01-22

    你必須知道你的中文文字檔案使用的編碼方法,預設可能是Windows-1252(ANSI),出現亂碼的原因是文字檔案的編碼與瀏覽器頁面字符集指定的編碼不一致,你可以在輸出前對內容執行$content = iconv()'文字檔案的編碼格式,例如 Windows-1252', '瀏覽器字符集,例如 UTF-8'$content)上線。

  10. 匿名使用者2024-01-21

    fgets() 是讀取一行。

    feof() 用於確定是否已到達檔案末尾。

    while() 是乙個迴圈,它繼續讀取每一行以回聲,然後到達檔案末尾,並顯示輸出。

  11. 匿名使用者2024-01-20

    還有 1 個。

    2 檔名不應為中文。

  12. 匿名使用者2024-01-19

    採集是單位元組的,根據編碼,可能的中文可能有 2 3 4 個位元組,所以無論輸出如何肯定是亂碼。

    解像度。 1.將 php 檔案的編碼更改為 UTF-8,只有這樣儲存到檔案中的檔案才會是 UTF-8 大多數中文都是基於 3 個位元組的。

    2.$fp=fopen($filename,"r");

    while(($char=fread($fp,3))!=='')

  13. 匿名使用者2024-01-18

    首先檢查:txt 檔案是 UTF8 嗎? 可能是這裡的問題。

  14. 匿名使用者2024-01-17

    幾乎沒有人用中文命名**檔案...... 至於你的原因,字元編碼不同,檔案的字元可以轉換為下乙個程式碼。

  15. 匿名使用者2024-01-16

    亂碼,表示您的檔案編碼和瀏覽器編碼不一致。

  16. 匿名使用者2024-01-15

    這是乙個編碼問題,改變編碼。

  17. 匿名使用者2024-01-14

    統一編碼是解決方案(99%解決了),如果你使用的編碼與系統統一,它仍然是亂碼,強制轉換它。

    if(mkdir(iconv('utf-8', 'gbk', "我的名字")))

  18. 匿名使用者2024-01-13

    這是乙個資料庫編碼問題。

    構建資料庫時使用 UTF8 字符集。

    在網頁中閱讀時,請在查詢之前執行此命令。

    mysql_query("set names 'gb2312'")

相關回答
3個回答2024-06-29

jiawei chen。把名字放在前面,把姓氏放在後面。 >>>More

18個回答2024-06-29

藍秀的中文名稱是:藍秀。 希望!

5個回答2024-06-29

液晶電視連線wifi可分為以下兩種情況:

1.如果家裡的電視是網路智慧型電視(內建網絡卡),可以在網路設定中掃瞄無線網路。 >>>More

6個回答2024-06-29

我的母親,唉! 太多了! 我怎麼能告訴你! 沒有積分!

16個回答2024-06-29

為什麼要匿名詢問? 基本上,我不問匿名問題,我習慣了提問,今天是個特例,我總是跳出來,你尋求幫助。 >>>More