一直使用 UTF-8
P粉964682904
P粉964682904 2023-08-27 16:00:18
0
2
578
<p> 我正在設定一個新伺服器,並希望在我的 Web 應用程式中完全支援 UTF-8。我過去曾在現有伺服器上嘗試過此操作,但似乎總是最終不得不退回到 ISO-8859-1。 </p> <p>我到底需要在哪裡設定編碼/字元集?我知道我需要配置 Apache、MySQL 和 PHP 來執行此操作 - 是否有一些我可以遵循的標準檢查表,或者也許可以對發生不匹配的位置進行故障排除? </p> <p>這適用於運行 MySQL 5、PHP、5 和 Apache 2 的新 Linux 伺服器。 </p>
P粉964682904
P粉964682904

全部回覆(2)
P粉854119263

我想在 chazomaticus 的出色答案中添加一件事一个>:

也不要忘記 META 標籤(像這樣,或 它的 HTML4 或 XHTML 版本):

<meta charset="utf-8">

這看起來微不足道,但 IE7 之前曾經給我帶來過問題。

我所做的一切都是正確的;資料庫、資料庫連接和Content-Type HTTP標頭都設定為UTF-8,在所有其他瀏覽器中都運作良好,但Internet Explorer仍然堅持使用「西歐」編碼。

原來該頁面缺少 META 標記。添加即可解決問題。

編輯:

W3C 其實有一個相當大的專門討論 I18N 的部分。他們有許多與此問題相關的文章 - 描述了 HTTP、(X)HTML 和 CSS 方面的內容:

他們建議同時使用 HTTP 標頭和 HTML 元標記(或在 XHTML 充當 XML 的情況下使用 XML 宣告)。

P粉763662390

資料儲存

  • Specify the utf8mb4 character set on all tables and text columns in your database. This makes MySQL physically store and retrieve values encoded natively in UTF-8. Note thatv. #utf8mb4 encoding if a utf8mb4_* collat​​ion is specified (without any explicit character set).

  • In older versions of MySQL (< 5.5.3), you'll unfortunately be forced to use simply

    utf8, which only supports a subset of Unicode characters. Iding wish I were kidding .

資料存取

  • In your application code (e.g. PHP), in whatever DB access method you use, you'll need to set the connection charset to

    utf8mb4. This way, MySQL does no conversion from its no conversion from its native UTF-8 when it hands data off to your application and vice versa.

  • 某些驅動程式提供自己的機制來配置連接字元集,該機制既更新其自身的內部狀態,又通知 MySQL 連接上要使用的編碼 - 這通常是首選方法。在 PHP 中:

  • If the driver does not provide its own mechanism for setting the connection character set, you may have to issue a query to tell MySQL how your application expects data on the connection to tell My#end: SET NAMES 'utf8mb4'

    .

    The same consideration regarding
  • utf8mb4
  • /

    utf8 applies as above.

  • 輸出

UTF-8 should be set in the HTTP header, such as

Content-Type: text/html; charset=utf-8

其他程式碼注意事項

    顯然,您將提供的所有檔案(PHP、HTML、JavaScript 等)都應使用有效的 UTF-8 進行編碼。
  • You need to make sure that every time you process a UTF-8 string, you do so safely. This is, unfortunately, the hard part. You'll probably want to make extensive use of PHP's
  • mbstring extension.

  • PHP's built-in string operations are

    not by default UTF-8 safe. There are some things you can safely do with normal PHP string operations (like concatenation) , but for most things you should use the equivalent mbstring function.

  • 要知道您在做什麼(閱讀:不要搞砸),您確實需要了解 UTF-8 以及它如何在盡可能最低的級別上工作。查看
  • utf8.com

    中的任何鏈接,獲取一些很好的資源,以了解您需要了解的所有內容。 p>

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!