Php
回复:UTF-8、PHP 和 XML Mysql
這與https://stackoverflow.com/questions/1791082/utf-8-php-and-xml-mysql有關,我仍在努力解決這個問題。
我有幾個單獨的問題,希望能幫助我了解如何解決我遇到的問題。
我正在嘗試從數據庫中讀取值並以 UTF-8 格式輸出到文件中。但是我遇到了編碼問題,所以我想我會剝離我的所有程式碼並開始:
$string = "Otivägen"; // then output to a file.
但是在
vim
我什至不能輸入那個字元串;每次我把它粘貼進去我都會得到Otivägen
.我試圖創建一個只有該字元串的空白 PHP 文件並上傳它,但是當我
cat
再次文件時,我得到Otivägen
.我的問題是:
- 為什麼會
vim
這樣顯示?- 如果文件被下載,如果應用程序需要 UTF-8,它會正確顯示嗎?
- 如何將此字元串輸出到最終將成為 UTF-8 編碼的 XML 文件的文件中?
目前我對編碼的理解有限,我正在努力理解它。
1)為什麼會
vim
這樣顯示?這看起來像 vim 將 UTF-8 編碼的數據顯示為 ISO 8859-1。複製和粘貼可能會出現問題(您不寫您所在的系統),所以我建議直接輸入文本。
要在 vim 中正確編輯文件,首先將 vim 設置為使用 UTF-8:
:set encoding=utf-8
然後輸入文本,確保它正確顯示,然後保存。這將為您提供一個以 UTF-8 編碼的文件。
- 如果應用程序需要 UTF-8,如果下載了文件,它會正確顯示嗎?
取決於編碼。如果按上述方式保存,則可以。
- 如何將此字元串輸出到最終將成為 UTF-8 編碼的 XML 文件的文件中。
這顯然是非常困難的。我對 PHP 不是很熟悉,但是根據 Wikipedia 的說法:
PHP 目前不支持 Unicode 或多字節字元串;Unicode 支持將包含在 PHP 6 中
$$ … $$
所以你可能不得不穀歌尋找解決方法。還有一些用於 PHP 和 UTF-8 的 UTF-8 幫助庫。否則,最好選擇一種不同的語言,例如具有可靠 Unicode 支持的 Java。