我有一個數據庫充滿了像♥•â—♥ Dhaka ♥•â—♥
(應該是♥•●♥ Dhaka ♥•●♥
),因爲我沒有在創建數據庫時指定排序規則。
現在我想修復它。我無法從第一個地方獲取數據。所以我在想,如果有可能在php腳本中獲取數據並將其轉換爲正確的字符。
我已將數據庫和字段的排序規則更改爲utf8_general_ci
..使用PHP將latin1_swedish_ci轉換爲utf8
回答
排序規則與字符集不同。排序規則僅用於文本的排序和比較(這就是爲什麼有一個語言術語)。實際的字符集可能不同。
最常見的故障不在數據庫中,而是在PHP和MySQL之間的連接中。連接的默認字符集通常是ISO-8859-1。您需要更改連接後執行的第一件事,即使用SQL查詢SET NAMES 'utf-8';
或mysql_set_charset函數。
還要檢查表格的字符集。如果你還沒有指定UTF-8開頭(這又與排序規則不一樣),那麼這可能是錯誤的。但請務必在更改任何內容之前進行備份。 MySQL會嘗試轉換上一個字符集,因此如果您實際上在ISO-8859-1表中保存了UTF-8數據,則可能需要從備份中重新加載數據。
好的。這些字符是否會在'utf8_general_ci'字符集中完全像這樣保存?我怎麼知道當這些字符被保存時使用了什麼字符集呢? –
utf8_general_ci不是一個字符集,它是一個整理。實際的字符集稱爲utf-8,是表的另一個屬性。 utf-8能夠對大多數字符進行編碼,因此是的(實際上,SO本身使用UTF-8,因此如果對您的問題的回答是「否」,您將無法向我顯示字符)。至於第二個問題,首先檢查你的表格以及連接在保存文本時的字符集。 –
謝謝。我現在得到它。 :)將mysql_set_charset設置爲utf8有助於新條目。研究其他細節。 :) –
我想看看mb_detect_encoding()和mb_convert_encoding(),看看他們能否幫到你。
當我使用mb_detect_encoding編碼時,在兩種情況下,它都聲稱它的UTF- 8。現在該怎麼辦? –
聽起來像一個破碎的編碼問題。閱讀此:http://stackoverflow.com/questions/1344692/i-need-help-fixing-broken-utf8-encoding – AlienWebguy
- 1. 如何將希伯來語數據庫從latin1_swedish_ci轉換爲utf8?
- 2. UTF8 to latin1_swedish_ci
- 3. 將utf8mb4字符轉換爲utf8在php
- 4. PHP:將curl_exec輸出轉換爲UTF8
- 5. 如何將php數組轉換爲utf8?
- 6. 使用Ruby將ANSI轉換爲UTF8
- 7. 使用Ruby將UTF8轉換爲ANSI
- 8. 將Unicode轉換爲UTF8
- 9. Python將latin1轉換爲UTF8
- 10. 將UTF8轉換爲ANSI?
- 11. 將utf8轉換爲1251
- 12. 將UTF8轉換爲Windows-1252
- 13. 將Utf8轉換爲Unicode
- 14. 將latin1轉換爲UTF8
- 15. 將utf8代碼點字符串轉換爲utf8 <U+0161>轉換爲utf8
- 16. 使用PHP或MySQL轉換utf8字符
- 17. 轉換重音UTF8編碼使用PHP
- 18. 如何將字符串轉換爲UTF8?
- 19. 將擴展ascii轉換爲utf8
- 20. SOLR + Mysql:如何將utf8轉換爲latin1
- 21. 如何將mysql latin1轉換爲utf8
- 22. 將latin1轉換爲utf8的問題
- 23. 將unicode字符串轉換爲utf8
- 24. java:如何將文件轉換爲utf8
- 25. MySQL將latin1數據轉換爲UTF8
- 26. 將ansi轉換爲utf8,反之亦然
- 27. 通過BATCH將UCS 2轉換爲UTF8
- 28. 將字節[]轉換爲UTF8字符串
- 29. 將latin1字符串轉換爲utf8?
- 30. 將字符串轉換爲UTF8與perl
我怎樣才能得到原始文本從?????? –