我搜查了一些意見,只說明他們從latin
轉換爲utf8
,請問我可否使用latin_swedish_ci
?它與英文字符沒有什麼不同,是這樣嗎?此外,如果我的網絡應用有meta-charset
UTF-8
,我正在使用latin_swedish_ci collation
,它會影響什麼嗎?我想要你對此的看法。可以使用默認排序規則(latin_swedish_ci)嗎?
回答
A CHARACTER SET
是指字符編碼的方式。 A COLLATION
引用字符比較的方式(用於相等或排序)。對於每個字符集,都有一個可能的歸類列表。 (西班牙語和德語有一些顯着的變化。)
兩個字符集latin1
和utf8
對英文文本進行相同的編碼。所以,如果你只使用英文,那麼CHARACTER SET
並不重要。即使這兩個字符集的默認排序規則對英文也是一樣。
如果您使用其他語言,甚至表情符號,提出的問題就變得很重要。
應用程序客戶端和MySQL服務器通常可以使用不同的字符集。轉換將自動發生。 但是,你必須告訴MySQL應用程序字節正在使用什麼字符集。 (這同樣適用於英語,這並不重要)。這取決於客戶端(Java,PHP,VB,Python等等)以各種方式完成。
我強烈建議您使用utf8mb4
而不是latin_swedish_ci
甚至utf8
。
即使latin_swedish_ci
支持所有英文字母,它可以,你會最終踢你的屁股。例如,姓名,地址和更多的東西可以包含其他字符,這可能會弄亂您存儲的數據,甚至更糟的是可能會產生明顯的錯誤!
那麼,爲什麼不只是utf8
你會問?因爲在MySQL中utf8
使用3個字節來存儲一個字符並且不能存儲每個utf-8字符,所以您需要4個字節,因此您需要utf8mb4
。如果您必須處理用戶條目,並且移動用戶決定將某些表情符號作爲條目放入,這可能會讓您陷入尷尬境地。給我一些時間。
不要問我爲什麼MySQL以這種方式搞砸了整個unicode的事情,我不知道......也許同樣的原因latin_swedish_ci
是默認的。
一般來說,使用完整的Unicode相關的一切文本,你是安全的。網絡龐大而且國際化,存儲空間足夠便宜。現在即使你不需要它,你也會爲未來做好準備。
相信我在這種情況下。我毫無準備地陷入這類問題,不得不通過艱難的方式來學習;)
我知道這個問題有點古怪,但我會在未來留給所有其他人的答案。
- 1. phpmyadmin更改默認排序規則
- 2. 設置默認排序規則phpmyadmin
- 3. 臨時表的默認排序規則
- 4. 如何編寫非默認排序規則並跳過顯式腳本以進行默認排序?
- 5. 我可以禁用jquery $ .post的默認排序嗎?
- 6. Eslint默認規則
- 7. Flex默認規則
- 8. 使用AJV設置默認規則
- 9. jQuery UI默認排序可排序
- 10. 可以使用驗證規則對wpf數據網格進行排序嗎?
- 11. 我可以使用Entity Framework Code First指定子實體默認排序嗎?
- 12. SQL Server中,如何將默認排序規則設置爲unicode?
- 13. 多語言數據庫的最佳默認排序規則
- 14. 默認排序規則添加到現有的MongoDB集合
- 15. 更改SQL Server 2008的默認排序規則
- 16. 爲什麼MySQL的默認排序規則latin1_swedish_ci?
- 17. SQL Server 2008 R2有錯誤的默認排序規則
- 18. 如何更改數據庫的默認排序規則?
- 19. 更改Firebird數據庫和表的默認排序規則
- 20. 如何更改表格的默認排序規則?
- 21. MySQL Workbench - 排序規則恢復爲Schema默認值
- 22. 更改默認排序規則/字符集
- 23. 在phpmyadmin中更改默認排序規則
- 24. 聲納默認規則
- 25. 默認的Udev規則
- 26. Make中的默認規則
- 27. 默認排序
- 28. 原則默認排序屬性
- 29. 我可以更改默認語言環境以使用嗎?
- 30. 使用排序規則查詢DB2