MS Windows因字符編碼的常見問題而聞名。在你的情況下,它看起來像你的「虛擬主機」使用UTF-8作爲編碼,而你的本地MS-Windows系統使用8位編碼。這可能是一些ISO-8859編碼,但更有可能是不正確的Windows代碼頁1251或任何幾乎是,但不是真正的ISO編碼。這似乎很可能,因爲您可以看到3個UTF字符在您的MS-Windows系統內被「轉換」爲六個字符。典型用於非ASCII字符。
有你有三種選擇:
- 實驗PHPS
default_charset
設置。你可以在php.ini文件中找到你的網頁服務器php解釋器使用的文件。
- 你切換你的MS-Windows系統在內部使用UTF-8編碼作爲 這些日子(這很明顯)有其他系統。不過 這並不容易,特別是要切換現有的系統是 可能不是一個好主意。
- 你必須轉換所有字符串你在這兩個世界之間交換 。由於編碼爲 的自動檢測不可靠(事實上可以證明它不可行,所以 可靠),您必須編碼特定的轉換。 PHP的確提供了這樣的例程,但從長遠來看,這是一件很痛苦的事情。在這種情況下,您傳輸一個php文件,這意味着要手動轉換所有這樣的字符串(編程語言只使用在兩種編碼中都是'合法'字符的ASCII字母,但
string
值的情況並非如此)到另一個編碼。
順便說一句:你可以通過使用文本編輯器來輕鬆地使用編碼(來自和來自切換),這允許在編碼之間輕鬆切換。這有助於瞭解正在發生的事情。和一個HexEditor是一個非常usefool工具,以找出什麼是真的存儲在一個文件中:-)
它的工作在我的Windows(7),PHP 5.4.3 ... – HamZa
感謝您的信息!將嘗試升級PHP 5.4.3 ... :) – user1087110