如果語言是英語,我有一個註冊表格,它正確對應於db表格。 IF語言是希臘語或其他用戶名出現在表中作爲加密(損壞??)。在數據庫表中選擇utf8_general_ci。我應該在代碼中添加什麼內容才能在所有語言中獲得相同的結果。 (結果=在db表中可以看到用戶的用戶名正確)。不同語言的用戶
不同語言的用戶
回答
確保提供結果的頁面與數據庫的編碼具有相同的編碼。如果表中有UTF-8數據,但顯示這些數據的頁面是例如ISO-8859-1,則ISO-8859-1字符集範圍之外的字符會顯示爲奇怪。
在PHP中一個可以修改標題爲這樣:
header('Content-type: text/html; charset=utf-8');
謝謝,我會試試看。 – 2013-03-11 10:20:07
第一個查詢之前添加
mysql_query("SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
更好地使用mysql_set_charset()而不是mysql_query()。 http://www.php.net/manual/en/mysqlinfo.concepts.charset.php。或者甚至更好,使用PDO:http://stackoverflow.com/questions/584676/how-to-make-pdo-run-set-names-utf8-each-time-i-connect-in-zendframework – 2013-03-12 03:16:14
UTF8是在PHP非常棘手。一些更多的問題(除了UTF8頭和UTF8 DB連接其他2個回答)我知道的:
您將需要使用mbstring functions。例如,substr()可能需要由mb_substr()函數替換。有關字符串函數的完整列表。見here。爲了讓php知道您期望的內部編碼,請在腳本開頭調用此函數:
mb_internal_encoding(「UTF-8」);
根據你的php版本,你可能需要不同地處理htmlspecialchars(),htmlentities()。
與htmlspecialchars()一樣,htmlentities()採用可選的第三個參數編碼,它定義了轉換中使用的編碼。如果省略,則此參數的缺省值是5.4.0之前的PHP版本中的ISO-8859-1,而PHP 5.4.0及之後的版本是UTF-8。
使用mysql LENGTH()函數的舊查詢可能不是我們想要的,因爲length()返回字節長度,而不是字符長度。我們可能需要更新它們以使用CHAR_LENGTH()。但是,這一切都取決於上下文!在以下示例中,中文列有3個字符,但每個字符佔3個字節。
mysql> select *, length(d), char_length(d) from t where id=3; +----+-----------+-----------+----------------+ | id | d | length(d) | char_length(d) | +----+-----------+-----------+----------------+ | 3 | 被凍死 | 9 | 3 | +----+-----------+-----------+----------------+
- 1. 如何切換不同用戶的語言環境/語言
- 2. 用不同語言發言
- 3. 不同語言
- 4. 不同的語言
- 5. 不同語言的iPhone info.plist按鍵用於不同的語言環境
- 6. 用戶會話使用不同的語言和MVVM
- 7. 不同語言的頁腳
- 8. 不同的語言資源
- 9. SharedPreferences和不同的語言
- 10. DataGridView中的不同語言
- 11. 支持不同的語言
- 12. 兩種不同語言的相同圖像但不適用於其他語言
- 13. 使用ion_auth用不同的語言
- 14. 不同字體的不同語言
- 15. 不同域名的不同語言
- 16. jQuery的.load()用不同的語言
- 17. Alfresco用戶語言
- 18. modx:我如何爲不同的用戶添加不同的管理員語言?
- 19. HTML根據用戶語言顯示不同的div
- 20. 不同語言的用戶界面,所見即所得
- 21. 可以redis不同的語言客戶端可以混用嗎?
- 22. 根據用戶輸入顯示不同語言的iPhone鍵盤
- 23. 顯示不同用戶語言的Facebook標籤內容
- 24. 適用於不同語言的菜單
- 25. strtotime使用不同的語言?
- 26. PHP:使用不同語言的提示
- 27. 用ejabberd解析不同的語言
- 28. SKProduct localizedDescription用不同的語言
- 29. 使用「不同語言」的源代碼
- 30. Play Framework - 使用不同語言的TemplateLoader
http://kunststube.net/encoding/和http://kunststube.net/frontback/ – 2013-03-11 10:01:08
感謝。你是個好人! – 2013-03-11 10:03:44