Кодирование / декодирование Unicode-последовательностей
Преобразуйте символы в escape-последовательности \uXXXX и обратно, с правильными суррогатными парами для emoji и других символов вне основной плоскости — плюс кодовая точка, байты UTF-8 и единицы UTF-16 по каждому символу.
| Символ | Кодовая точка | байты UTF-8 | единицы UTF-16 |
|---|---|---|---|
| 你 | U+4F60 | 0xE4 0xBD 0xA0 | U+4F60 |
| 好 | U+597D | 0xE5 0xA5 0xBD | U+597D |
| , | U+002C | 0x2C | U+002C |
| U+0020 | 0x20 | U+0020 | |
| 😀 | U+1F600 | 0xF0 0x9F 0x98 0x80 | U+D83D |
| U+0020 | 0x20 | U+0020 | |
| A | U+0041 | 0x41 | U+0041 |
Что это такое
Каждый символ живёт на пронумерованной кодовой позиции: A — U+0041, 中 — U+4E2D. В JavaScript их записывают как escape \uXXXX. Загвоздка: emoji и редкие символы лежат за пределами первых 65536 ячеек, поэтому один emoji — это не одна, а пара последовательностей, называемая суррогатной парой: улыбка превращается в \uD83D\uDE00. Инструмент корректно обрабатывает обе плоскости и показывает кодовую точку, байты UTF-8 и кодовые единицы UTF-16 каждого символа.
Заметки и интересные факты
Почему улыбка занимает две последовательности? Потому что систему проектировали, когда 65536 ячеек казались бесконечностью, а emoji пришли десятилетия спустя. Инженерам пришлось ставить заплатку: зарезервировать диапазон D800–DFFF. Старший суррогат за ним следует младший — и вместе это один большой символ. Заплатка оказалась настолько удачной, что теперь её боятся удалять.
Происхождение и история
Консорциум Unicode опубликовал первый стандарт Unicode в октябре 1991 года. Версия 2.0 (июль 1996) подняла лимит до миллиона с лишним позиций и ввела UTF-16 с суррогатными парами под руководством Питера Хартке и Технического комитета Unicode — поэтому сегодня emoji всегда состоит из двух escape-последовательностей.
Похожие запросы
Обратная связь
Нашли проблему с инструментом или есть предложение? Напишите нам на email — мы читаем каждое сообщение.
