Как кодируются байты с кодировкой UTF-8 с переменной длиной, декодируются/переводятся в символы Unicode?Вопрос о преобразовании в unicode
ответ
Каждый байт со значением выше 127
(двоичное 01111111
, 7f
гекса) является частью многобайтовом характера.
Итак, если первый бит равен 0, сделано - однобайтовый символ. Если нет, это продолжение byte - биты в байте также определяют, сколько байтов в этом символе (технически до 6-байтовых символов было бы возможно, но UTF-8 определяется только для 1-4 байт персонажи).
Для истории и более подробного объяснения, обратитесь к этой статье нашим лидером Бесстрашный;) The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) или this wikipedia article on UTF-8 (имеет более подробную техническую информацию о допустимых/недопустимых комбинаций байт)
я считаю, что это here
UTF-8 является Unicode, поэтому нет перевода. Если вы имеете в виду «Как увидеть символы, отличные от ASCII на экране, когда я показываю строку Unicode», вам необходимо убедиться, что у вас установлен установленный Unicode шрифт &.
Моя компания использует this шрифт.
Это как @Piskvor describes.
Алгоритмы кодирования/декодирования UTF-8 описаны в RFC 3629.
В следующей таблице (32 бит) кодовой точки Юникода диапазонов байт последовательности происходит из этого документа:
Char. number range | UTF-8 octet sequence
(hexadecimal) | (binary)
--------------------+---------------------------------------------
0000 0000-0000 007F | 0xxxxxxx
0000 0080-0000 07FF | 110xxxxx 10xxxxxx
0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
- 1. Вопрос о преобразовании Xsl
- 2. Вопрос о преобразовании
- 3. Вопрос о преобразовании HID в MIDI
- 4. Вопрос о преобразовании десятичного в двоичный проклясть
- 5. Странный вопрос о преобразовании функции Свифта 3
- 6. Idiomatic clojure вопрос о преобразовании последовательности
- 7. Вопрос о преобразовании большого десятичного разряда
- 8. Вопрос о преобразовании ints в datetime в TSQL
- 9. Вопрос о двоичном преобразовании в hex для подписанных байтов
- 10. Шаблоны Unicode при преобразовании XSL
- 11. Вопрос о преобразовании: как перемещать изображение во время масштабирования?
- 12. Ruby Unicode Вопрос
- 13. Java unicode вопрос
- 14. Python Undo Unicode Вопрос
- 15. о преобразовании php в pdf
- 16. Вопрос Django о запросах
- 17. Pandas: Tricky Unicode Ошибка при преобразовании Dataframe
- 18. Сохранять символ unicode при преобразовании XML
- 19. Новый вопрос в преобразовании питона массивов
- 20. Вопрос о
- 21. Confused о представлениях unicode
- 22. Путаница о python unicode
- 23. О преобразовании из NSString в NSData
- 24. Вопрос о "&" в Groovy
- 25. Вопрос о; в PHP
- 26. Вопрос о форме Silverlight Вопрос
- 27. Unicode вопрос в Python с Django
- 28. Нужна помощь в преобразовании экранированного Unicode обратно в исходную строку
- 29. о преобразовании файла ubx в RINEX
- 30. Вопросы о преобразовании кода Java в C#
Я сожалею, что является неправильным. UTF-8 - это система для преобразования символов в байты и наоборот, которая * кодирует * символы Unicode (аналогично, ASCII * кодирует * латинский алфавит, но это * не * алфавит); в программе-метафоре можно сказать, что «UTF-8 реализует интерфейс Unicode». Хотя UTF-8 является наиболее известным, есть другие - среди них UTF-7, UTF-16, UTF-32. Я рекомендую страницу Википедии в Юникоде и ссылки в моем ответе. http://en.wikipedia.org/wiki/Unicode – Piskvor
Юникод - это _codepoints_, которые составляют символ юникода из байтовой кодировки с переменной длиной, которая называется _UTF-8_. – user4344
@ user4344: Это упрощение, которое было бы абсолютно корректным, если бы была одна кодировка для правильного их использования, UTF-8. Unicode * codepoint * по существу является числом, которое представляет собой символ. Этот номер может быть закодирован в ** различных кодировках **, среди них UTF-7, UTF-8 и т. Д. Пожалуйста, прочитайте это, разница между * "is" * и * "представляет" * здесь весьма важна: http : //www.joelonsoftware.com/articles/Unicode.html – Piskvor