[請益] 讀檔後字串取代問題

看板PHP作者 (胖熊)時間16年前 (2009/11/16 09:19), 編輯推噓3(305)
留言8則, 5人參與, 最新討論串1/1
我想取代檔案中的某字串...(有以下3種寫法) 英文數字都OK 但是只要牽扯中文會出問題..請問如何解決?? a.txt 內容就是 HELLO WORLD 哈囉世界 <?php $homepage = (String)file_get_contents(D:/a.txt); <第1種> $newcon = str_replace("WORLD","123",$homepage); <第2種> $newcon = str_replace("WORLD","世界",$homepage); <第3種> $newcon = str_replace("世界","world",$homepage); file_put_contents(D:/b.txt,$newcon); ?> <第1種> 結果OK HELLO 123 哈囉世界 <第2種> 結果會變成 HELLO ? 哈囉世界 <第3種> 結果完全沒變 HELLO WORLD 哈囉世界 請問要怎麼解決這個問題?? 我用的編碼是 UTF-8 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.6.193

11/16 10:52, , 1F
編碼的關係?
11/16 10:52, 1F
※ 編輯: tabear 來自: 59.124.6.193 (11/16 10:53)

11/16 11:25, , 2F
用mb_str_replace試試
11/16 11:25, 2F

11/16 12:00, , 3F
Call to undefined function mb_str_replace() = =
11/16 12:00, 3F

11/16 17:00, , 4F
很明顯是編碼問題...你xxx.php本身編碼就要是UTF-8
11/16 17:00, 4F

11/16 17:01, , 5F
a.txt 這檔案也要是 Utf-8 編碼
11/16 17:01, 5F

11/16 17:01, , 6F
只要有一個檔案不是UTF-8編碼就會出現你那問題
11/16 17:01, 6F

11/17 09:28, , 7F
mbstring模組要載才能用mb系列的function :)
11/17 09:28, 7F

11/18 00:52, , 8F
這應該只是純粹編碼問題..
11/18 00:52, 8F
文章代碼(AID): #1B0AYDIi (PHP)
文章代碼(AID): #1B0AYDIi (PHP)