2010-02-04 27 views
2

我有一個頁面,它的編碼是UTF-8,如果我嘗試在unix系統中運行該代碼,所有東西看起來都不錯,但是當我嘗試在Windows(7)中運行時,有些字符看起來有問題標記()。如何運行兩個系統的代碼都很好(不使用iconv)。unicode setlocale和strftime在windows失敗

header('Content-Type: text/html; charset=UTF-8'); 
setlocale(LC_ALL, 'turkish'); 
echo strftime("%d %B %Y, %H:%M"); 
+0

是唯一的區別服務器?不是瀏覽器,FTP程序還是編輯器保存它?我知道這聽起來很奇怪,但是如果你的編輯器被設置爲不同的字符集,或者瀏覽器的默認字符集會影響它。這有時候會讓人感到痛苦。 – jerebear 2010-02-04 04:43:07

+0

是的,唯一的區別是服務器。所有文件的編碼類型都是相同的。 – mTuran 2010-02-04 04:54:06

回答

3

對於那些在linux上有類似問題的人(這可能也適用於Windows,但不知道)。

是的,有'土耳其',但也有'tr_TR.utf8'。如果你使用'tr_TR.utf8',你的問題很可能會被沖走。同樣的事情也適用於'希臘'。而是使用'el_GR.utf8'

在linux上,您可以檢查區域設置列表以找到適合您網站的設置。

locale -a 

列表太長,你不能看到所有的語言,所以要麼你可以轉儲到一個文件,然後打開該文件進行檢查。

locale -a > locale.txt 
vi locale.txt 

或做區域-a | grep的語言代碼特定語言

locale -a | grep tr 
9

Microsoft Windows不支持UTF-8語言環境。因此,如果您提供土耳其語區域設置,它會拍攝一個8位代碼頁,允許表示特定語言。

例如,對於區域希伯來語,將PIC代碼頁-1255,土耳其的話,大概是1254

所以,你不能在MS Windows平臺使用。

如何運行兩個系統的代碼都很好(不使用iconv)。

可能在MS Windows下使用非utf8編碼。