Sự khác biệt giữa bảng mã utf8mb4 và utf8 trong MySQL là gì?

370
Mojtaba Rezaeian 2015-05-07 00:45.

Sự khác biệt giữa utf8mb4utf8bảng mã trong MySQL là gì?

Tôi đã biết về các bảng mã ASCII , UTF-8 , UTF-16UTF-32 ; nhưng tôi rất tò mò muốn biết sự khác biệt của utf8mb4nhóm mã hóa với các loại mã hóa khác được xác định trong MySQL Server .

Có bất kỳ lợi ích / đề xuất đặc biệt nào của việc sử dụng utf8mb4hơn là utf8?

4 answers

417
CodeCaster 2015-05-07 00:47.

UTF-8 là một mã hóa có độ dài thay đổi. Trong trường hợp UTF-8, điều này có nghĩa là việc lưu trữ một điểm mã yêu cầu từ một đến bốn byte. Tuy nhiên, mã hóa của MySQL được gọi là "utf8" (bí danh của "utf8mb3") chỉ lưu trữ tối đa ba byte cho mỗi điểm mã.

Vì vậy, bộ ký tự "utf8" / "utf8mb3" không thể lưu trữ tất cả các điểm mã Unicode: nó chỉ hỗ trợ phạm vi 0x000 đến 0xFFFF, được gọi là " Mặt phẳng đa ngôn ngữ cơ bản ". Xem thêm So sánh các bảng mã Unicode .

Đây là những gì (phiên bản trước của cùng một trang tại) tài liệu MySQL nói về nó:

Bộ ký tự có tên utf8 [/ utf8mb3] sử dụng tối đa ba byte cho mỗi ký tự và chỉ chứa các ký tự BMP. Kể từ MySQL 5.5.3, bộ ký tự utf8mb4 sử dụng tối đa bốn byte cho mỗi ký tự hỗ trợ các ký tự bổ sung:

  • Đối với một ký tự BMP, utf8 [/ utf8mb3] và utf8mb4 có các đặc điểm lưu trữ giống hệt nhau: giá trị mã giống nhau, mã hóa giống nhau, cùng độ dài.

  • Đối với một ký tự phụ, utf8 [/ utf8mb3] hoàn toàn không thể lưu trữ ký tự , trong khi utf8mb4 yêu cầu bốn byte để lưu trữ. Vì utf8 [/ utf8mb3] hoàn toàn không thể lưu trữ ký tự, bạn không có bất kỳ ký tự bổ sung nào trong cột utf8 [/ utf8mb3] và bạn không cần lo lắng về việc chuyển đổi ký tự hoặc mất dữ liệu khi nâng cấp dữ liệu utf8 [/ utf8mb3] từ các phiên bản cũ hơn của MySQL.

Vì vậy, nếu bạn muốn cột của mình hỗ trợ lưu trữ các ký tự nằm bên ngoài BMP (và bạn thường muốn), chẳng hạn như biểu tượng cảm xúc , hãy sử dụng "utf8mb4". Xem thêm Các ký tự Unicode không phải BMP phổ biến nhất trong thực tế sử dụng là gì? .

66
Jimmy Kane 2016-11-01 02:28.

Bộ utf8mb4ký tự rất hữu ích vì ngày nay chúng ta cần hỗ trợ để lưu trữ không chỉ các ký tự ngôn ngữ mà còn cả các ký hiệu, biểu tượng cảm xúc mới được giới thiệu, v.v.

Một bài đọc hay về Cách hỗ trợ Unicode đầy đủ trong cơ sở dữ liệu MySQL của Mathias Bynens cũng có thể làm sáng tỏ điều này.

53
simhumileco 2018-09-15 08:25.

Lấy từ Hướng dẫn tham khảo MySQL 8.0 :

  • utf8mb4: Bảng mã UTF-8 của bộ tự Unicode sử dụng một đến bốn byte cho mỗi ký tự.

  • utf8mb3: Bảng mã UTF-8 của bộ tự Unicode sử dụng một đến ba byte cho mỗi ký tự.

Trong MySQL utf8 hiện là một bí danh cho utf8mb3bị phản đối và sẽ được loại bỏ trong một tương lai MySQL phát hành. Tại thời điểm đó utf8 sẽ trở thành một tham chiếu đến utf8mb4 .

Vì vậy, bất kể bí danh này là gì, bạn có thể tự đặt cho mình một utf8mb4bảng mã.

Để hoàn thành câu trả lời, tôi muốn thêm nhận xét của @ WilliamEntriken bên dưới (cũng được lấy từ sách hướng dẫn):

Để tránh sự mơ hồ về ý nghĩa của utf8, hãy xem xét chỉ định utf8mb4rõ ràng cho các tham chiếu bộ ký tự thay vì utf8.

1
thomasrutter 2020-10-06 03:39.

Trong MySQL, utf8đề cập đến việc triển khai thiếu sót của tiêu chuẩn UTF-8, trong đó không phải tất cả các phạm vi ký tự đều được hỗ trợ.

Cụ thể, chỉ các ký tự trong bình diện đa ngôn ngữ cơ bản hoạt động, với các ký tự khác được coi là không hợp lệ. Điều này là do các giá trị trong mặt phẳng đó - 0 đến 65535 (một số trong số đó được dành riêng cho các lý do đặc biệt) có thể được biểu thị bằng mã hóa nhiều byte trong UTF-8 lên đến 3 byte và MySQL sử dụng UTF-8 đã tự ý quyết định đặt đó làm giới hạn.

Trở lại khi MySQL phát hành điều này, đó không phải là vấn đề nhiều. Kể từ đó, ngày càng có nhiều phạm vi ký tự mới được xác định đã được thêm vào Unicode với các giá trị nằm ngoài bình diện đa ngôn ngữ cơ bản.

Trong nỗ lực không phá vỡ mã cũ đưa ra bất kỳ giả định cụ thể nào, MySQL đã giữ lại phần triển khai bị hỏng và được gọi là phiên bản mới hơn, cố định utf8mb4. Điều này đã dẫn đến một số nhầm lẫn với việc tên bị hiểu sai như thể đó là một loại phần mở rộng nào đó của UTF-8, chứ không phải là việc triển khai UTF-8 thực sự chính thức của MySQL.

Các phiên bản tương lai của MySQL cuối cùng có thể loại bỏ phiên bản cũ hơn, nhưng trong tương lai utf8mb4gần sẽ được sử dụng thay thế để đảm bảo mã hóa UTF-8 chính xác.

Một số có thể khiến tôi gặp vấn đề khi mô tả việc triển khai cũ hơn, không tuân thủ là thiếu sót hoặc bị hỏng. Nhưng, đúng là bằng cách chỉ cho phép mã hóa nhiều byte lên đến 3 byte, nó không bao giờ tuân thủ chính xác tiêu chuẩn UTF-8 vì nó tồn tại tại bất kỳ thời điểm nào và đó là lý do cho các sai sót của nó. Tại thời điểm nào UTF-8 được định nghĩa là hỗ trợ tối đa 3 byte: Lần duy nhất nó không được định nghĩa là tối đa 4 byte là khi ban đầu nó được định nghĩa là có tối đa 6 byte (!!) - mà các thông số kỹ thuật Unicode tiếp theo có quyết định là quá mức cần thiết.

Related questions

MORE COOL STUFF

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

8 công dụng tuyệt vời của Baking Soda và Giấm

8 công dụng tuyệt vời của Baking Soda và Giấm

Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.

Đây là Tổng thống Trump đe dọa 'trợ cấp' xe điện của GM vì đóng cửa nhà máy

Đây là Tổng thống Trump đe dọa 'trợ cấp' xe điện của GM vì đóng cửa nhà máy

Trump và Giám đốc điều hành GM Mary Barra vào năm 2017. Kể từ khi tin tức nổ ra ngày hôm qua rằng General Motors đang cắt giảm việc làm ở Bắc Mỹ để chuẩn bị cho tương lai điện / xe tự hành / khủng khiếp có thể xảy ra của chúng tôi, gần như tất cả mọi người đã tự hỏi: Tổng thống Trump, người đã vận động tranh cử trên một nền tảng sẽ như thế nào của việc mang lại và duy trì việc làm ô tô của Mỹ, phải nói gì về điều này? Bây giờ chúng ta biết.

Bản vá lỗi tiếp theo của Fallout 76 sẽ mang lại một số bản sửa lỗi cần thiết

Bản vá lỗi tiếp theo của Fallout 76 sẽ mang lại một số bản sửa lỗi cần thiết

Bethesda cho biết ngày hôm nay trên Reddit, Fallout 76 sẽ có một bản vá lớn khác vào ngày 4 tháng 12, sẽ bắt đầu cố gắng khắc phục một số vấn đề lớn hơn của trò chơi. Ngoài ra, công ty cho biết họ có kế hoạch giao tiếp nhiều hơn trong tương lai về những gì nhóm Fallout 76 đang làm việc và khi nào các bản cập nhật mới cho trò chơi sẽ ra mắt.

Mạng lưới bệnh viện Công giáo sẽ không cho phép nhân viên phá thai tại phòng khám ngoài giờ làm việc

Mạng lưới bệnh viện Công giáo sẽ không cho phép nhân viên phá thai tại phòng khám ngoài giờ làm việc

Bạn có biết rằng một trong sáu bệnh nhân ở bệnh viện ở Hoa Kỳ được điều trị tại một cơ sở Công giáo? Và bạn có biết rằng quyền sở hữu của Công giáo hạn chế sâu sắc việc thiết lập các thủ tục y tế có thể được thực hiện trong các bệnh viện này, rõ ràng nhất là khi nói đến chăm sóc sức khỏe sinh sản? Bây giờ NPR báo cáo rằng sự gia tăng của các bệnh viện thuộc Công giáo đang gây khó khăn hơn cho các bác sĩ — những người bị cấm bởi các quy định do Hoa Kỳ viết.

Khói từ đám cháy rừng ở California đã đến tận thành phố New York

Khói từ đám cháy rừng ở California đã đến tận thành phố New York

Đường chân trời San Francisco bị che khuất bởi khói và khói mù do cháy rừng phía sau Đảo Alcatraz, Thứ Tư, ngày 14 tháng 11 năm 2018, ở San Francisco.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"

Đường băng hạ cánh

Đường băng hạ cánh

Cuối hè đầu thu là mùa hoài niệm. Những chiếc đèn đường chiếu ánh sáng của chúng qua những con đường đẫm mưa, và những chiếc lá dưới chân - màu đỏ cam tắt trong bóng chạng vạng - là lời nhắc nhở về những ngày đã qua.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.

Language