存储URL的适当字符编码/整理?

Dol*_*lph 6 mysql collation character-encoding

我的Web应用程序将URL段存储在数据库中.这些网址细分基于用户提交的内容.

我应该对URL中出现的字符串使用哪种排序规则?

我的假设是ASCII General CI(?)基于这个问题:哪些字符使URL无效?

Pek*_*ica 3

据我所知,这并不重要。URL 中有效的字符以我知道的任何字符集表示,并且我不会在表和列之间使用不同的排序规则 - 在尝试加入它们或执行任何其他操作时,您将遇到“非法混合排序规则”问题一种跨列或跨表操作(请参阅我最近的问题

当然,如果我错了,请纠正我。

  • @Pekka웃 对于电话号码或 URL 之类的内容使用 utf8mb4 而不是 ascii 的问题仅在存储空间是一个问题(怀疑)或真正的问题(如果您使用索引中的列)时才重要。如果您有一个采用 ascii 编码的 varchar(256) 的 URL 字段,则密钥长度为 256,但如果您使用 utf8mb4,则密钥大小必须为 1024,以支持该列包含多字节字符的可能性,该字符大于InnoDB 允许的密钥大小是多少 (2认同)