2016-07-27 22 views
0

我一直在研究一個PHP程序,最後導出一個HTML文件。我遇到了一個問題,其中有時法文字符沒有正確寫入文件(這不是網頁的問題,我用記事本打開文件,字符只是改變了)。PHP - fwrite()/ fputs()有時候弄錯了重音字符

這裏是一段代碼,我已經寫:

foreach($footer as $a){ 
echo $a; 
fwrite($file, $a."\r\n"); 
} 

回波顯示以下內容:

恩CAS德發散恩特雷里奧斯樂本文件和les文件 contractuels officiels,CES derniers ontpréséance。

但什麼是寫入到文件是:

恩CAS德發散恩特雷里奧斯樂PRA©發送文檔等文件的LES contractuels officiels,CES derniers ONT PRA©SA©ANCE。

在我的代碼中,有幾行代碼我用其他法語字符導出行,它們工作得很好(它基本上是完全相同的代碼),但這裏不是。我試過使用fputs(),改變fopen($ file,'w')fopen($ file,'wb'),添加utf_encode()(這隻會讓混亂出現更糟糕),等等,沒有什麼解決了這個問題。有任何想法嗎?

+0

是您的phpscript文件設置爲'utf8'嗎? – JustOnUnderMillions

+0

或者嘗試一下手冊中的內容: fwrite($ file,utf8_encode($ myString)); –

+0

還要確保在寫入後用於打開文件的編輯器支持utf8並且未在latin1上設置 –

回答

0

我最終找到了解決我的問題:

我無法設置之類的東西在在被另一個程序的修改時,我沒有任何控制權,以便法國字符必須是文件覆蓋原樣顯示在文本中。

能正確顯示所要做的

fwrite($file, utf8_decode($a)."\r\n"); 

謝謝大家:)