2014-12-23 66 views
-4

好吧,讓我們從頭開始。我只是意識到這是apache而不是phpmyadmin,我的不好。-Apache-文件從「網站」不是UTF8

無論如何,我需要通過網絡訪問某種文件存儲。我刪除了index.html以列出/ var/www中的其他文件。現在,如果我在瀏覽器中打開JSON文件(UTF8 w/o BOM),則不會正確顯示ä,ü,ö這樣的特殊字符(正常字符)。如果我下載文件,我的系統上的所有內容都是正確的。 所以文件本身很好,但從Apache到網絡的流不是UTF8,或類似的東西。我想改變。

我需要這個爲android應用程序,在那裏我解析與排球庫的json文件的內容。但在那裏它也會讓特殊的怪物錯誤。

希望這比befor更有用。我爲此道歉。

+2

我很困惑。你安裝了Phpmyadmin,你刪除了它的index.html,你在那裏放了一些.json文件,你點擊它,它的字符是垃圾?這與phpmyadmin或MySQL或my.cnf中的任何設置完全無關。 – deceze

+0

無關信息 –

回答

1

唯一的問題是你的瀏覽器不知道它應該將UTF-8編碼的JSON文件解釋爲UTF-8。相反,它會回落到默認的Latin-1解釋中,在這種解釋中,某些字符會搞砸,因爲它使用錯誤的編碼來解釋文件。

就是這樣。如果在這種情況下使用正確的編碼UTF-8解釋文件,那麼該文件將顯示正常。
使用瀏覽器的查看→編碼菜單將其強制爲UTF-8並查看它的工作。

爲什麼瀏覽器不使用UTF-8?因爲沒有HTTP Content-Type標題告訴它這樣做。爲什麼沒有合適的HTTP頭文件集?因爲您沒有告訴您的Web服務器它應該爲.json文件設置此標頭。你如何告訴Apache這樣做?通過在.htaccess文件中添加this line

AddCharset UTF-8 .json 
+0

好的,聽起來合乎邏輯。起初它不起作用(即使在重新啓動後),但是在最終做了一些json文件的重命名之後。謝謝。 – kinglite