Bộ chuyển đổi Emoji Unicode
Chuyển đổi các emoji thành các điểm mã Unicode (U+XXXX) hoặc dán các điểm mã để có được emoji.
Emoji → Unicode
Unicode → Emoji
Chi tiết ký tự
Cách sử dụng
- Nhập một emoji hoặc một điểm mã: dán một ký tự emoji hoặc gõ điểm mã Unicode của nó (vd: U+1F600).
- Xem tất cả các biểu diễn: công cụ hiển thị mã thập phân, giá trị hex, thực thể HTML, escape CSS, byte UTF-8 và chuỗi escape JavaScript.
- Sao chép bất kỳ định dạng nào: nhấp vào một kết quả để sao chép nó ngay lập tức để sử dụng trong HTML, CSS hoặc JavaScript.
Tại sao sử dụng bộ chuyển đổi Emoji Unicode?
Các emoji được mã hóa thành các điểm Unicode, nhưng mỗi hệ thống sử dụng một định dạng khác nhau. HTML cần các thực thể 😀 hoặc 😀. Các pseudo-element CSS cần dạng escape \1F600. Các chuỗi JavaScript cần \u{1F600}. Tìm chúng bằng tay rất tốn công, công cụ này tạo mỗi định dạng ngay lập tức từ một đầu vào emoji đơn giản. Các nhà phát triển, nhà thiết kế và người sáng tạo nội dung sử dụng nó để nhúng các emoji một cách an toàn vào mã nơi sao chép-dán các ký tự thô có thể gây ra các vấn đề về mã hóa.
Các định dạng đầu ra được hỗ trợ
- Điểm Unicode, ký hiệu U+1F600 để tham khảo
- Thực thể HTML thập phân, 😀 cho các trang HTML
- Thực thể HTML hex, 😀 dạng HTML thay thế
- Escape CSS, \1F600 để sử dụng trong thuộc tính content CSS
- Escape JS, \u{1F600} cho các literal chuỗi JavaScript
- Byte UTF-8, chuỗi byte thô cho công việc mã hóa cấp thấp
Lịch sử ngắn về emoji và những điều mọi người hiểu sai
Câu chuyện nguồn gốc được nhắc lại nhiều nhất ghi công Shigetaka Kurita tại NTT DoCoMo là người tạo ra «emoji đầu tiên» vào năm 1998-1999. Câu chuyện đó đúng nhưng chưa đầy đủ. Hai sự phát triển trước Kurita xứng đáng được đề cập:
- Sharp PA-8500 (tháng 10 năm 1988). Bộ hình ảnh lâu đời nhất được biết đến đáp ứng định nghĩa hiện đại về «emoji» xuất hiện trên một máy tính tổ chức điện tử Nhật Bản. Nó mang 102 hình ảnh ở 16×16 pixel, một thập kỷ trước bộ của Kurita. Emojipedia đã đưa tin về việc tái phát hiện vào năm 2024 sau khi các nhà nghiên cứu tìm thấy các đơn vị còn hoạt động của thiết bị.
- J-Phone DP-211SW (1997). Bản thân Kurita đã thừa nhận trong một bài đăng mạng xã hội vào tháng 1 năm 2019 rằng chiếc điện thoại di động đầu tiên có bộ emoji không phải của DoCoMo. Ông chỉ vào J-Phone DP-211SW, mang khoảng 90 hình ảnh đơn sắc vào khoảng năm 1997. SoftBank sau đó đã mua lại J-Phone, đó là lý do tại sao lần triển khai emoji đầu tiên của Apple tại Nhật Bản (xem bên dưới) được phát hành đặc biệt cho người dùng SIM SoftBank.
- Bộ i-mode NTT DoCoMo của Shigetaka Kurita (1998-1999). Kurita dẫn đầu việc thiết kế bộ 176 emoji được vẽ trên lưới pixel 12×12: khoảng 18 byte mỗi glyph, ba kilobyte cho toàn bộ bộ, một ràng buộc quan trọng cho nền tảng i-mode bị giới hạn băng thông mà NTT DoCoMo ra mắt vào tháng 2 năm 1999. Ông dựa vào các ký hiệu manga Nhật Bản (manpu), biểu tượng thời tiết, kanji và biển báo đường phố. Vào năm 2016, Bảo tàng Nghệ thuật Hiện đại (MoMA) ở New York đã mua bộ 176 emoji gốc của Kurita vào bộ sưu tập thiết kế vĩnh viễn của mình.
Cách emoji lan rộng ra phần còn lại của thế giới
Trong một thập kỷ sau bộ của Kurita, emoji là hiện tượng nhà mạng Nhật Bản, với ba bộ nhà cung cấp cạnh tranh và không tương thích (DoCoMo, KDDI, SoftBank). Sự lan rộng xảy ra theo ba giai đoạn:
- 21 tháng 11 năm 2008, iPhone OS 2.2. Apple phát hành phiên bản đầu tiên của Apple Color Emoji (471 glyph riêng lẻ khi ra mắt). Bàn phím chính thức bị giới hạn cho người dùng iPhone Nhật Bản có SIM SoftBank. Apple Color Emoji được trích dẫn rộng rãi là font màu đầu tiên được tích hợp trong bất kỳ hệ điều hành lớn nào.
- 12 tháng 10 năm 2011, iOS 5. Apple phát hành iOS 5 trên toàn thế giới, và lần đầu tiên bàn phím emoji có thể được bật bởi bất kỳ ai, ở bất kỳ đâu, từ menu Cài đặt. Hầu hết các nhà sử học coi đây là sự khởi đầu của làn sóng toàn cầu của emoji.
- 31 tháng 10 năm 2013, Android 4.4 KitKat. Phiên bản đầu tiên của Google với hỗ trợ emoji màu đầy đủ và bàn phím emoji tích hợp. Bộ KitKat chứa khoảng 850 emoji và giới thiệu thiết kế blob đặc trưng của Google (đã được thay thế trong Android 8 Oreo bằng thiết kế tròn thông thường hơn mà chúng ta thấy ngày nay).
Công việc chuẩn hóa của Unicode Consortium diễn ra song song. Tháng 10 năm 2010, Unicode 6.0 là phiên bản đầu tiên của tiêu chuẩn bổ sung emoji như một bộ được công nhận, đóng góp khoảng 722 emoji từ liên hiệp các bộ nhà mạng Nhật Bản. Tháng 8 năm 2014, Unicode Technical Report #51 được xuất bản (sau đó được nâng lên UTS #51 vào tháng 5 năm 2017), đặc tả chính thức về cách emoji được mã hóa, sắp xếp và trình bày.
Tại sao hầu hết code point emoji nằm trên U+FFFF
Unicode tổ chức mọi ký tự thành 17 «mặt phẳng», mỗi mặt phẳng gồm 65.536 code point. Plane 0 là Mặt phẳng Đa ngôn ngữ Cơ bản (BMP), từ U+0000 đến U+FFFF. Hầu hết ngôn ngữ viết thường ngày nằm ở đây. Plane 1-16 là các mặt phẳng bổ sung (thường gọi là «mặt phẳng astral»), từ U+10000 đến U+10FFFF. Đại đa số emoji sống trong Plane 1, Mặt phẳng Đa ngôn ngữ Bổ sung, cụ thể trong các khối như Biểu tượng cảm xúc (U+1F600-U+1F64F), Ký hiệu và Hình ảnh Linh tinh (U+1F300-U+1F5FF), Ký hiệu Giao thông và Bản đồ (U+1F680-U+1F6FF), và Ký hiệu và Hình ảnh Bổ sung (U+1F900-U+1F9FF). Khối Ký hiệu và Hình ảnh Mở rộng-A mới hơn nằm ở U+1FA70-U+1FAFF.
Điều này quan trọng với lập trình viên vì UTF-16. UTF-16 mã hóa code point BMP thành một đơn vị 16-bit, nhưng code point bổ sung phải được mã hóa thành cặp surrogate: hai đơn vị 16-bit, một từ dải high-surrogate U+D800-U+DBFF và một từ dải low-surrogate U+DC00-U+DFFF. Kiểu string của JavaScript nội bộ là UTF-16, đó là lý do tại sao "😀".length trả về 2 thay vì 1: engine đang đếm code unit, không phải code point. Code JS hiện đại dùng Array.from("😀").length hoặc API Intl.Segmenter để đếm grapheme cluster chính xác.
UTF-8 xử lý cùng emoji đó bằng chuỗi 4 byte. Ký tự 😀 (U+1F600) là F0 9F 98 80 trong UTF-8. Đó là lý do tại sao bộ ký tự utf8 cũ của MySQL (thực ra là utf8mb3, giới hạn ở chuỗi 3 byte) không thể lưu emoji, bạn cần utf8mb4. MySQL 8.0 đặt utf8mb4 làm mặc định, nhưng các cơ sở dữ liệu cũ vẫn thất bại khi lưu emoji và lặng lẽ cắt ngắn hoặc báo lỗi tùy thuộc vào SQL mode. Đây là lỗi thực tế thường gặp.
Bộ chọn biến thể, tại sao cùng một trái tim có thể trông đen hoặc đỏ
Một số ít ký tự Unicode có «tính cách kép»: chúng có thể xuất hiện dưới dạng ký hiệu văn bản đơn sắc thuần túy hoặc dưới dạng emoji đầy màu sắc, tùy thuộc vào ngữ cảnh. Hai bộ chọn trình bày được thêm vào Unicode 3.2 (tháng 3 năm 2002): U+FE0F (Variation Selector-16, VS16) yêu cầu trình bày emoji, và U+FE0E (VS15) yêu cầu trình bày văn bản. Ví dụ: ❤ (U+2764, «Heavy Black Heart») là ký hiệu mặc định văn bản; ❤️ (U+2764 U+FE0F) là trái tim đỏ trình bày emoji mà hầu hết ứng dụng render có màu. Cùng một code point có và không có VS16 trông hoàn toàn khác nhau.
Một ví dụ nổi tiếng liên quan là mặt trời. U+2600 «Black Sun With Rays» mặc định theo kiểu văn bản đơn sắc; thêm VS16 (U+2600 U+FE0F) cho ra ☀️ đầy màu sắc. Ngược lại, U+1F31E «Sun With Face» là một code point riêng biệt được thêm vào Unicode 6.0 (tháng 10 năm 2010), mặc định trình bày emoji, và render thành 🌞 mỉm cười mà không cần bộ chọn nào. Hai code point khác nhau, hai lịch sử khác nhau, cả hai đều được gọi không chính thức là «mặt trời emoji.»
Bộ chỉnh màu da và thang Fitzpatrick
Vào Unicode 8.0 (phát hành ngày 17 tháng 6 năm 2015), tiêu chuẩn đã thêm năm ký tự chỉnh sửa điều chỉnh màu da của bất kỳ emoji nào hiển thị hình người. Các chỉnh sửa dựa trên thang Fitzpatrick, phân loại da liễu được phát triển năm 1975 bởi bác sĩ da liễu người Mỹ Thomas B. Fitzpatrick tại Harvard. Thang y tế có sáu loại (I đến VI). Cho mục đích emoji, loại I và II được gộp thành một chỉnh sửa duy nhất, để lại năm chỉnh sửa emoji:
U+1F3FBSáng (Fitzpatrick I-II)U+1F3FCSáng vừa (Fitzpatrick III)U+1F3FDTrung bình (Fitzpatrick IV)U+1F3FETối vừa (Fitzpatrick V)U+1F3FFTối (Fitzpatrick VI)
Cách dùng là theo vị trí: chỉnh sửa đến ngay sau một emoji người được hỗ trợ. Ví dụ, 👋 (U+1F44B, waving hand) + U+1F3FD tạo ra 👋🏽, làn sóng tay tông trung bình. Nếu font của người nhận không hỗ trợ tổ hợp base+chỉnh sửa cụ thể đó, chỉnh sửa render thành một hình vuông nâu riêng biệt, một chế độ lỗi phổ biến trên các hệ thống cũ.
Chuỗi Zero-Width Joiner) cách emoji phức hợp được tạo ra
Zero-Width Joiner, code point U+200D, là ký tự «keo» cho phép nhiều emoji kết hợp thành một glyph tổng hợp khi renderer nhận ra chuỗi. ZWJ vô hình và không có độ rộng, nó tồn tại thuần túy để báo hiệu cho rendering engine rằng các ký tự xung quanh nên hợp nhất. Ba mẫu chiếm ưu thế:
- Chuỗi gia đình. Một emoji gia đình như 👨👩👧👦 («gia đình: nam, nữ, bé gái, bé trai») được mã hóa là
U+1F468 U+200D U+1F469 U+200D U+1F467 U+200D U+1F466: bốn emoji người phân tách bởi ZWJ. Nếu thiết bị nhận không có glyph tổng hợp cụ thể đó, dự phòng là hiển thị mọi thành phần cạnh nhau. Đây là một trong những lỗi hiển thị emoji xuyên nền tảng phổ biến nhất. - Chuỗi nghề nghiệp và vai trò. 👩💻 («nhà công nghệ nữ») là
U+1F469 U+200D U+1F4BB: nữ + ZWJ + laptop. Hầu hết emoji nghề nghiệp trong Unicode hiện tại được xây dựng theo cách này, giúp tiêu chuẩn không phải tạo một code point riêng cho mỗi tổ hợp công việc và tông da. - Chuỗi danh tính và niềm tự hào. Cờ cầu vồng 🏳️🌈 là
U+1F3F3 U+FE0F U+200D U+1F308: cờ trắng với VS16 + ZWJ + cầu vồng.
Được sử dụng nhiều trong Unicode 15.1 (phát hành ngày 12 tháng 9 năm 2023): 118 emoji mới được thêm trong 15.1, trong đó 108 là biến thể có hướng của emoji hiện có (người quay mặt phải thay vì trái mặc định). Quan trọng là, 15.1 thêm không có code point cơ sở mới nào: mọi emoji mới đều là chuỗi được tạo từ các thành phần hiện có.
Keycap, chỉ báo vùng và cơ chế cờ
Chuỗi keycap. Một emoji keycap như 1️⃣ được tạo từ ba code point: một chữ số (U+0031 = «1»), VS16 (U+FE0F), và ký tự Combining Enclosing Keycap U+20E3. Combining keycap được phê duyệt là một phần của Unicode 3.0 năm 1999. Bộ đầy đủ emoji keycap bao gồm 0-9 cộng # và *. Chuỗi ba ký tự này gây nhầm lẫn cho các kiểm tra .length ngây thơ mọi lúc.
Cặp chỉ báo vùng (cờ). Unicode không mã hóa cờ quốc gia thành các ký tự đơn. Thay vào đó, nó định nghĩa 26 Ký hiệu Chỉ báo Vùng, code point U+1F1E6 đến U+1F1FF, mỗi ký hiệu tương ứng với một chữ cái Latin A đến Z. Một cờ là một cặp chỉ báo vùng đánh vần mã quốc gia ISO 3166-1 alpha-2. Cờ Pháp 🇫🇷 là U+1F1EB U+1F1F7: chữ cái chỉ báo vùng F và R. Trong 26 × 26 = 676 cặp có thể, chỉ khoảng 270 tương ứng với mã quốc gia ISO hợp lệ; phần còn lại render thành hai ký hiệu chữ cái trên hầu hết các nền tảng.
Các phiên bản emoji gần đây, tóm tắt
- Unicode 15.0, phát hành ngày 13 tháng 9 năm 2022. Thêm 31 emoji mới bao gồm trái tim hồng 🩷, trái tim xanh nhạt 🩵, trái tim xám 🩶, tay đẩy 🫷🫸, mặt lắc 🫨, sứa 🪼, nai sừng tấm 🫎, lừa 🫏, củ gừng 🫚.
- Unicode 15.1, phát hành ngày 12 tháng 9 năm 2023. Thêm 118 emoji mới, tất cả là chuỗi ZWJ thay vì code point cơ sở mới. 108 là biến thể có hướng; phần còn lại bao gồm chim phượng hoàng 🐦🔥, chanh 🍋🟩, nấm nâu ăn được 🍄🟫 và xích bị đứt ⛓️💥.
- Unicode 16.0, phát hành ngày 10 tháng 9 năm 2024. Thêm 8 emoji mới: Face with Bags Under Eyes (
U+1FAE9), Fingerprint (U+1FAC6), Splatter (U+1FADF), Root Vegetable (U+1FADC), Leafless Tree (U+1FABE), Harp (U+1FA89), Shovel (U+1FA8F), và Flag of Sark 🇨🇶. Lưu ý: khuôn mặt mới chính thức là «Face with Bags Under Eyes,» không phải «yawning face» (emoji mặt ngáp 🥱U+1F971được thêm vào Unicode 12.0 năm 2019 và không liên quan). - Unicode 17.0) phát hành ngày 9 tháng 9 năm 2025. Thêm 7 emoji code point mới: Distorted Face, Fight Cloud, Hairy Creature (thường gọi là Bigfoot), Orca, Landslide, Trombone, và Treasure Chest. Cộng thêm 156 biến thể màu da và giới tính dẫn xuất, nâng tổng số emoji mới trong 17.0 lên 163. Hầu hết các nhà cung cấp lớn lên kế hoạch triển khai trong nửa đầu năm 2026; Microsoft thường trễ thêm một hoặc hai quý.
Thiết kế nhà cung cấp, cùng code point, khác hình ảnh
Unicode chuẩn hóa ý nghĩa và code point, không bao giờ là hình ảnh. Mỗi nền tảng có font emoji riêng, và sự khác biệt trực quan đủ thực để gây ra hiểu lầm được ghi nhận trong các nghiên cứu học thuật (Hecht et al., CSCW 2018, về hiểu sai emoji xuyên nền tảng). Các font chính:
- Apple Color Emoji đi kèm với iOS, iPadOS, macOS, tvOS. Lần đầu ra mắt tháng 11 năm 2008 với 471 glyph; mở rộng lên 3.633+ vào tháng 9 năm 2021. Độc quyền; không thể phân phối lại hợp pháp ngoài các nền tảng Apple.
- Noto Color Emoji (Google) đi kèm với Android (từ 4.4 KitKat, tháng 10 năm 2013), ChromeOS, Gmail. Mã nguồn mở theo Giấy phép Font Mở SIL.
- Segoe UI Emoji (Microsoft) đi kèm với Windows 8.1 trở đi. Bản làm mới Fluent Emoji năm 2021 giới thiệu thiết kế 3D trong Microsoft 365.
- One UI Emoji (Samsung) trên điện thoại Galaxy, khác với Noto của Google mặc dù Android dùng Noto theo mặc định.
- Twemoji được Twitter mã nguồn mở vào ngày 6 tháng 11 năm 2014 với 874 thiết kế SVG (mã MIT, đồ họa CC-BY 4.0). Repo Twitter gốc chưa được duy trì tích cực kể từ khi đổi tên thương hiệu X; các fork cộng đồng (đáng chú ý là
jdecked/twemoji) tiếp tục phát triển.
Khi font của thiết bị không có glyph cho một code point hoặc chuỗi cụ thể, trình duyệt và hệ điều hành hiển thị một hình chữ nhật trống, thường được gọi là tofu. Tofu là tín hiệu mạnh nhất có thể rằng thiết bị của người nhận cũ hơn của người gửi. Các emoji mới thường mất từ sáu đến mười tám tháng để lan rộng từ khi Unicode phát hành đến tất cả các nền tảng lớn.
Khả năng tiếp cận, những gì tác giả nội dung cần biết
Các trình đọc màn hình hiện đại (NVDA, JAWS, VoiceOver, TalkBack) đọc ra tên rút gọn CLDR của mỗi emoji từ Unicode Common Locale Data Repository, ví dụ «grinning face» cho 😀, «family: man, woman, girl, boy» cho 👨👩👧👦. Unicode CLDR duy trì tên rút gọn và từ khóa chính thức bằng hơn 90 ngôn ngữ, được mọi trình đọc màn hình lớn trên nền tảng Apple và Microsoft sử dụng. Kỹ thuật WCAG H86 khuyến nghị bọc emoji có ý nghĩa trong <span role="img" aria-label="thumbs up">👍</span>; emoji trang trí nên được ẩn với aria-hidden="true". Ba cạm bẫy: emoji lặp lại trở nên dài dòng (😂😂😂😂😂 đọc là «Face with tears of joy» năm lần); biểu tượng cảm xúc kiểu văn bản (:)) đọc là «colon close-paren» mà không có tên rút gọn Unicode; chỉnh màu da được đọc to (👋🏽 đọc là «waving hand: medium skin tone», có thông tin nhưng chậm hơn).
Emojipedia và cơ sở hạ tầng văn hóa
Emojipedia được thành lập năm 2013 bởi Jeremy Burge, một nhà thiết kế người Úc đã đăng ký tên miền ngẫu hứng sau một bữa tiệc sinh nhật. Đây hiện là trang web tham khảo thực tế về ý nghĩa emoji, thiết kế nhà cung cấp và đưa tin về phát hành, phục vụ khoảng 590 triệu lượt xem trang vào năm 2021. Burge tham gia Tiểu ban Emoji Unicode, từng là «Chief Emoji Officer» của Emojipedia đến năm 2022, và tạo ra Ngày Emoji Thế giới (17 tháng 7): được chọn vì emoji lịch Apple 📅 hiển thị ngày 17 tháng 7, bản thân đó là gật đầu với ngày ra mắt gốc của Apple iCal tại Macworld Expo năm 2002. Emojipedia được mua lại bởi Zedge, Inc. (NYSE: ZDGE) vào tháng 8 năm 2021 và tiếp tục hoạt động dưới cùng thương hiệu. Tiểu ban Emoji Unicode, đánh giá các đề xuất emoji mới, hiện được chủ trì bởi Jennifer Daniel, cựu trưởng thiết kế của Google, là người phụ nữ đầu tiên đảm nhận vị trí chủ tịch tiểu ban.
Số tham khảo nhanh
- 3.953: tổng số emoji tính đến Unicode 17.0 (tháng 9 năm 2025)
- 176: bộ i-mode gốc của Kurita (1999)
- 102: số lượng hình ảnh trên Sharp PA-8500 (1988)
- 12×12: lưới pixel của emoji i-mode của Kurita
- 5: số lượng chỉnh màu da (Fitzpatrick I và II được gộp)
U+200D: Zero-Width JoinerU+FE0F/U+FE0E: bộ chọn trình bày emoji / văn bảnU+20E3: Combining Enclosing KeycapU+1F1E6đếnU+1F1FF: chữ cái chỉ báo vùng A-Z dùng để tạo cặp cờF0 9F 98 80: byte UTF-8 cho U+1F600 (😀)- 17 tháng 7: Ngày Emoji Thế giới
- 21 tháng 11 năm 2008: iPhone OS 2.2, font emoji màu đầu tiên
- 12 tháng 10 năm 2011: iOS 5, bàn phím emoji khả dụng toàn cầu
- Tháng 10 năm 2010: Unicode 6.0, phiên bản tiêu chuẩn đầu tiên với emoji
- 17 tháng 6 năm 2015: Unicode 8.0, bổ sung chỉnh màu da