MySQL VARCHAR 長度與UTF-8:澄清混淆
在UTF-8 表中建立VARCHAR(32) 欄位時MySQL,問題來了:它代表的是32位元組還是32個字元的儲存容量?對這種差異的理解可能因 MySQL 版本而異。
理解 VARCHAR 長度
在 MySQL 5.0.3 及更高版本中,VARCHAR 長度以字元單位解釋,而不是位元組。這意味著 VARCHAR(32) 字段最多可以容納 32 個字符,而不管每個字符所需的儲存空間如何。
在早期版本的 MySQL(4.1 及更低版本)中,VARCHAR 長度以位元組為單位解釋。因此,UTF-8 中的 VARCHAR(32) 字段最多允許 32 個位元組的數據,這些數據可能會儲存為少於 32 個字符,具體取決於字符編碼。
UTF- 8 字符編碼
UTF-8 是一種字符編碼,可以表示各種國際字符,包括多字節字符。這意味著單一 UTF-8 編碼字元可以佔用多個位元組的儲存空間。
UTF-8 的最大VARCHAR 長度
由於多個字節的可能性-byte UTF-8字符,MySQL 5.0.3及更高版本中VARCHAR列的有效最大長度受最大行大小限制(65,535 位元組)和使用的字元集。對於 UTF-8 字元集,VARCHAR 的最大長度約為 21,844 個字符,因為每個字元最多需要三個位元組。
以上是UTF-8 MySQL 表中的 VARCHAR(32) 欄位可以容納多少個字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!