Php

回复:UTF-8、PHP 和 XML Mysql

  • October 6, 2020

這與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.

我的問題是:

  1. 為什麼會vim這樣顯示?
  2. 如果文件被下載,如果應用程序需要 UTF-8,它會正確顯示嗎?
  3. 如何將此字元串輸出到最終將成為 UTF-8 編碼的 XML 文件的文件中?

目前我對編碼的理解有限,我正在努力理解它。

1)為什麼會vim這樣顯示?

這看起來像 vim 將 UTF-8 編碼的數據顯示為 ISO 8859-1。複製和粘貼可能會出現問題(您不寫您所在的系統),所以我建議直接輸入文本。

要在 vim 中正確編輯文件,首先將 vim 設置為使用 UTF-8:

:set encoding=utf-8

然後輸入文本,確保它正確顯示,然後保存。這將為您提供一個以 UTF-8 編碼的文件。

  1. 如果應用程序需要 UTF-8,如果下載了文件,它會正確顯示嗎?

取決於編碼。如果按上述方式保存,則可以。

  1. 如何將此字元串輸出到最終將成為 UTF-8 編碼的 XML 文件的文件中。

這顯然是非常困難的。我對 PHP 不是很熟悉,但是根據 Wikipedia 的說法:

PHP 目前不支持 Unicode 或多字節字元串;Unicode 支持將包含在 PHP 6 中

$$ … $$

所以你可能不得不穀歌尋找解決方法。還有一些用於 PHP 和 UTF-8 的 UTF-8 幫助庫。否則,最好選擇一種不同的語言,例如具有可靠 Unicode 支持的 Java。

引用自:https://serverfault.com/questions/88144