00:00 Введение 01:10 Коды символов 01:40 ASCII 02:51 Нехватка кодов 03:30 Кодовые страницы 04:45 Windows и ANSI 05:50 Unicode 07:14 Проблема 1. Расточительство памяти 07:40 Проблема 2. Порядок хранения байт 09:04 UCS-2. Bom-байты 09:59 UTF-8 13:28 UTF-16 16:57 UTF-32 17:47 Резюме 18:12 Знаки вопросов 18:31 Строки в языках программирования
2:20 - 8ой бит не был пустым, он использовался под контроль четности (parity), для контроля целостности передаваемой информации. Отсюда и всякие рудименты, дошедшие до наших дней типа base64 или uue.
@@mikegnd4429 всё верно сказано. Компьютеры работают с байтовой или словесной адресацией. Если нужен доступ к отдельным битам, используются операции сдвига
Только подумал, дабы написать об этом в комментариях, а тут уже. С таким качеством, как делает автор, это скорее всего будет единственное стоящее видео про ieee-754, ибо даже на англоязычном RUclips'е не так просто найти понятный материал по этой теме.
Согласен! Про мантису, всю эту херню, как в двоичном виде вычисления производятся в FPU и так далее) да и вообще бы про основу там) как АЛУ устроен) как в АЛУ сумматор работает и т.д. ))) хотя про это всё уже Ben Eater расказывал, но это на забугорном ютубе)))
Не скажу, что информация из видео мне жизненно необходима, но она очень познавательна и автор кратко и емко излагает суть вопроса. Можно только приветствовать такие видео! Спасибо!
Огромное спасибо за это видео! Концентрированная, систематизированная, рационально укомплектованная и последовательно представленная информация - ничего лишнего. Моё почтение.
Наткнулся на Ваш канал, чтобы как обычно - "посмотреть перед сном", => не мог заснуть до утра и смотрел все видео подряд... Думал, что умру от "передозировки" на столько КАЧЕСТВЕННОЙ информации.... Дай Бог Вам здоровья, сил, терпения и мотивации делать такой офигительный контент и нести действительно ВАЖНЫЕ знания в массы! P.S. идея для следующего видео - как "под капотом" работают алгоритмы хеширования
@@WypukEST сказано верно, но отличия как подготовился и подал материал человек в видео, и как это делали в учреждении, колосально разная, тем самым шанс, с улежавшимися мыслями, что я(или кто-то другой) понял бы то, что рассказали бы опять в учреждении, равносильны случайностям и опыту за годы, а вот в видео это было идеально изложено, для первого понимания в целом, об этой теме. А всё потому что автор видео мог что-то переделать в видео, доделать, дописать из инфы, что хотел сказать, но забыл, а вот преподаватель в учреждении этого не сможет, пара закончилась и всё, только на следующей он дополнит, если вспомнит в чём ошибся или забыл упомянуть, но помнить всё слова с прошлой пары не дано каждому (это уж точно). По-крайней мере вот, эта разница, из за которой стоит искать на ютубе видео, иногда можно понять картину в целом и по проще, из за видео🌞
Ну без проверки сложно судить. Надо найти универские задания на эту тему. Найти пару сотен людей не знающих эту тему изначально. Одну сотню учить одним способом, другую другим, а потом попросить решить одни и те же задания.
@@CrazyCactusVibes + студент не переспросит, ибо приходит убить время за корочкой... p.s. но это не повод превращать лекцию в раздачу ссылок на ютубе (по той же причине)
Не скажу, что понял все, что объяснял автор, но вы натолкнули меня на некоторые мысли в своей работе - не программирование, но у нас большие проблемы с быстрым перекодираванием в Unicode. Попробую осуществить то, что задумал. Надеюсь, получится. Автору большущий респект!))
@@MrVintarb на 99%. Мне нужно было ускорить перекодирование из asci (точнее его аналог армянского armscii) в unicode. Раньше на 400.000 строк уходило 25 минут, с моим новым кодом теперь 6минут. Но появилась одна проблема, которую не могу решить пока что - если в ячейках есть числа с нулем в начале, при перекодировании они исчезают. То есть 011 превращается в 11. А это не нужно. Сейчас ломаю голову над этим. Если смогу решить эту часть процесса, то внедрю в отдел свой код
Наткнулся на твой канал, это просто очень круто! Я занимаюсь программистом на высоком уровне и даже не задумывался о таких "мелочах". Спасибо что ты мне это объяснил.
0:26 Одна грамматическая помарка: это не число, а последовательность цифр. Оттого и пошло понятие "цифровой". Число - это величина, а цифра - это знак. Цифра 1 не больше 0, а просто отличный от 0 знак. Замени 1 на "Х" и машина продолжить работать, как ни в чём не бывало. 1 и 0 - это логические символы, а не числа, это булевские true и false, "да" и "нет".
Хочу выразить благодарность *Alek Os* за доступность и лаконичность подачи информации. Как он преподносит материал ни один лектор/препод в универе/ на курсах так подробно с интузиазмом не расскажет и с такой удачной подачой и илюстрациями. Огромный респект!
Огромное спасибо за такой разбор и подробное донесениe информации. Действительно неожиданно увидеть такое в российском сегменте ютуба. Однозначно подписка и лайк! Автору всего лучшего, каналу - подписчиков и процветания!
Вообще компьютерные технологии развивались не преимущественно в США. У истории другое мнение, но считаю, что этот канал супер. Лайк. Подписка. Автору спасибо!
@@maksimfedorov2632 не понял про контекст «популяризации». В контексте стандартов использующихся сейчас - конечно же. Я к тому что в СССР компьютерные технологии тоже развивались, и очень активно. Другой вопрос, что по различным причинам СССР из этой «гонки» вышел, по этому стандарты у нас только западные остались(по крайней мере из ширпотреба)
@@Curly_Braces видео про стандарты кодирования текста. В СССР не знаю ни одного стандарта кодирования текста, кроме раскладки на печатной машинке, которая была за 400 лет до изобретения компов. Именно кодирования ни одного стандарта в совке небыло.
Я как человек, который только начал свой путь в программировании хочу сказать, что ваши видео ПРОСТО СУПЕР!! О сложном получается сказать настолько просто, что поняла даже я. Молю о продолжении! С меня подписка, лайки и пересмотры видосов по несколько раз 😂
Когда проходили это в универе, нам конечно рассказывали про ASCII, но в ролике пропущена интересная часть о том, что у нас была параллельно отечественная КОИ8 а потом и ISO версии кодировок пошли до UTF. На некоторых заводах у нас КОИ8 использовалась очень долго до перехода на юникод. Видимо видео сделано по англоязычной книге.
Дело не в книгах, тут подается информация, полезная для всего мира, и так инфы очень много, а тут еще и наши кодировки надо изучать, которые только нами использовались.
Это все из-за одного отца - Била Гейтса, это его Microsoft устравивала хаос, чтобы под шумок занять первое место на рынке. Apple, тоже хороши, тоже внесли вклад в это. Кодировки, это еще не все, есть еще один зоопарк, способы обозначения окончания и перевода строк.
Человек - это машина, работающая не с текстом, а с образами. Текст - это набор образов, называемых словами, которые мы конвертируем в семантические образы объектов (реальных и воображаемых)
мне кажется для большего охвата просмотров стоило в названии написать ascii, utf-8, utf-16 и тд.. иначе я не понимаю почему так мало просмотров ведь это же просто шедевр
1:26 на этом моменте я подумал о механизме Энигмы. Когда предложение заменяется другим предложением, причём существует набор символов-ключей для восстановления предыдущего предложения. Вроде бы так, но это не точно. Я не помню.
Есть пара ошибок. Порядок байт в UTF-8 не зависит от порядка байт платформы. Подобная зависимость появляется только если отправить в файл число типа больше 1 байта (или область памяти такие числа содержащую) напрямую. UCS-2, UTF-16, UTF-32 представляются как некоторые числа 16 или 32 бита, даже если код использует utf8 напрямую (а не кодирует в неё при записи) байты они и есть байты, endiannes на них не влияет. И BOM в UTF-8 тоже бывает, но используется как сигнатура для автоматического определения кодировки. Виндовый блокнот, например, его добавляет. 10 в начале у второго и последующих байт символа нужны не для определения порядка, они и непригодны для этого, файл может состоять из мегабайта ASCII и в конце будет встречаться один многобайтный символ, определять порядок байтов при начале чтения в таком случае не получится, а проверять при обработке каждого символа накладно. 10 нужен для обработки смещений. Если указатель указывает на байт 10* то получатель понимает, что ему дали смещение, попадающее в середину символа и либо пропустит до следующего начального байта, либо кинет ошибку. Вторая ошибка - нелюбовь к UTF-8 в качестве внутренних строк связана не со скоростью, а со старым кодом. Код, считающий что может обрабатывать строку как массив и резать поэлементно, брать любое смещение внутри строки и считать длину в символах, он в принципе не пригоден для UTF-8. Строго говоря, он и для других кодировок непригоден, и дело не только в суррогатных парах, в юникоде полно других служебных символов, модификаторов для добавления надсимвольных элементов, индикаторов для BiDi, но на ошибку с этим ещё надо напороться, а подобную проблему в UTF-8 словишь при первом же не-ASCII символе. В новых языках, чьи библиотеки проектируются после появления юникода, в том же Rust например, тупой индексации байт в строковом типе нет, есть посимвольная итерация по строке или перевод строки в массив символов, в итоге в Rust для внутренних строк используется именно UTF-8 и ему норм
Я правильно понял, что ascii и unicode это таблицы с символами, а utf8 utf16 utf32 это алгоритми/протоколы кодирования/шифрования символов из unicode таблицы? Спасибо
Верно, ASCII и Unicode - это таблицы, в которых указаны соответствия числовых кодов и символов. ASCII определяет коды для основных английских символов, а Unicode расширяет этот набор, включая символы из различных письменных систем. Кодировки, такие как UTF-8, UTF-16 или UTF-32, определяют правила для хранения числовых кодов символов в памяти компьютера. Когда вы вводите текст или сохраняете его, каждый символ преобразуется в соответствующий числовой код с использованием таблицы символов, а затем сохраняется в соответствии с выбранной кодировкой. При отображении текста на экране используется рендеринг текста, который преобразует числовые коды символов в графические элементы, отображаемые на экране. Таким образом, ASCII и Unicode предоставляют таблицы символов, определяющие соответствие между числовыми кодами и символами, а кодировки определяют правила хранения и представления этих числовых кодов в памяти компьютера.
высший пилотаж в объяснении просто, я хоть и опытный и вроде много всего мучил с кодировками, но все равно познал много нового, в том числе и исторические причины, почему так. Мое введение в кодировки началось с перекидывания контактов в айпод, там я и узнал, что такое яЛП или BOM подпись. круто, надеюсь это посмотрит каждый, кто учится или уже работает в айти сфере
Пришёл сюда в процессе изучения указателей в Паскале по первому тому Столярова. Всё понял, хоть и смотрел на перемотке. Да, вы друг друга сильно дополняете, он преподносит через книгу доходчиво, а вы иллюстрируете так же грамотно. Если бы не учился по этому учебнику, ничего бы не понял вообще. Спасибо большое!
00:00 Введение
01:10 Коды символов
01:40 ASCII
02:51 Нехватка кодов
03:30 Кодовые страницы
04:45 Windows и ANSI
05:50 Unicode
07:14 Проблема 1. Расточительство памяти
07:40 Проблема 2. Порядок хранения байт
09:04 UCS-2. Bom-байты
09:59 UTF-8
13:28 UTF-16
16:57 UTF-32
17:47 Резюме
18:12 Знаки вопросов
18:31 Строки в языках программирования
2:20 - 8ой бит не был пустым, он использовался под контроль четности (parity), для контроля целостности передаваемой информации. Отсюда и всякие рудименты, дошедшие до наших дней типа base64 или uue.
"Минимальная ячейка памяти, которую можно адресовать, составляет 8 бит" - ну-ну, бит адресовать уже нельзя. И может все-таки размер ячейки?
,хсхс,хс
@@mikegnd4429 всё верно сказано. Компьютеры работают с байтовой или словесной адресацией. Если нужен доступ к отдельным битам, используются операции сдвига
Не понимаю почему так мало просмотров. Как по мне, материал всех видео сделан качественно и лёгок в понимании, надеюсь продолжите в том же духе.
Поддерживаю! лучшее видео в рунете про кодировку
+
монотонная подача не вызывает откликов в голове. Хоть и материал хороший.
@@gredar77 У таких детей как я - вызывает.
с радостью бы поддержал комментарий, видно, что материал качественный. Но мне ничего не понятно
Приятные цвета, хорошая анимация, дикция и подача материала - все круто! Спасибо за видео!
Ничоси, не ожидал такого увидеть в российском сегменте интернета. Спасибо, все понятно и разложено по полочкам
Идея для нового видео: как работают числа с плавающей точкой ieee-754
Только подумал, дабы написать об этом в комментариях, а тут уже. С таким качеством, как делает автор, это скорее всего будет единственное стоящее видео про ieee-754, ибо даже на англоязычном RUclips'е не так просто найти понятный материал по этой теме.
Согласен! Про мантису, всю эту херню, как в двоичном виде вычисления производятся в FPU и так далее) да и вообще бы про основу там) как АЛУ устроен) как в АЛУ сумматор работает и т.д. ))) хотя про это всё уже Ben Eater расказывал, но это на забугорном ютубе)))
@@xm4dn355x ruclips.net/video/HPGw4qFARTg/видео.html
Как учитель информатики, говорю, ЭТО ПОТРЯСАЮЩЕ!
Спасибо за столько замечательное видео!
Законспектируй с видео и передавай информацию детям)
Не скажу, что информация из видео мне жизненно необходима, но она очень познавательна и автор кратко и емко излагает суть вопроса. Можно только приветствовать такие видео! Спасибо!
Этот контент - прям то, что нужно. Большое спасибо Вам! По мере возможности продолжайте, пожалуйста!)
Огромное спасибо за это видео! Концентрированная, систематизированная, рационально укомплектованная и последовательно представленная информация - ничего лишнего. Моё почтение.
Наткнулся на Ваш канал, чтобы как обычно - "посмотреть перед сном", => не мог заснуть до утра и смотрел все видео подряд... Думал, что умру от "передозировки" на столько КАЧЕСТВЕННОЙ информации.... Дай Бог Вам здоровья, сил, терпения и мотивации делать такой офигительный контент и нести действительно ВАЖНЫЕ знания в массы! P.S. идея для следующего видео - как "под капотом" работают алгоритмы хеширования
Учили все это в универе, казалось тогда мега сложным, а сейчас смотрю видос и понимаю, что это просто наши преподы объяснять не умеют.
Жиза
В образовательных учреждениях идёт плотный поток информации, которая обязана улежаться. Это одна из причин, почему взрослому проще учиться.
@@WypukEST сказано верно, но отличия как подготовился и подал материал человек в видео, и как это делали в учреждении, колосально разная, тем самым шанс, с улежавшимися мыслями, что я(или кто-то другой) понял бы то, что рассказали бы опять в учреждении, равносильны случайностям и опыту за годы, а вот в видео это было идеально изложено, для первого понимания в целом, об этой теме.
А всё потому что автор видео мог что-то переделать в видео, доделать, дописать из инфы, что хотел сказать, но забыл, а вот преподаватель в учреждении этого не сможет, пара закончилась и всё, только на следующей он дополнит, если вспомнит в чём ошибся или забыл упомянуть, но помнить всё слова с прошлой пары не дано каждому (это уж точно).
По-крайней мере вот, эта разница, из за которой стоит искать на ютубе видео, иногда можно понять картину в целом и по проще, из за видео🌞
Ну без проверки сложно судить. Надо найти универские задания на эту тему. Найти пару сотен людей не знающих эту тему изначально. Одну сотню учить одним способом, другую другим, а потом попросить решить одни и те же задания.
@@CrazyCactusVibes + студент не переспросит, ибо приходит убить время за корочкой...
p.s. но это не повод превращать лекцию в раздачу ссылок на ютубе (по той же причине)
Очень годный контент, спасибо огромное.
Человек настолько долго ждал возвращения Зоракса, что сам им стал. Видос крутой
Да, напоминает стиль его изложения)
Не скажу, что понял все, что объяснял автор, но вы натолкнули меня на некоторые мысли в своей работе - не программирование, но у нас большие проблемы с быстрым перекодираванием в Unicode. Попробую осуществить то, что задумал. Надеюсь, получится. Автору большущий респект!))
Получилось?
@@MrVintarb на 99%. Мне нужно было ускорить перекодирование из asci (точнее его аналог армянского armscii) в unicode.
Раньше на 400.000 строк уходило 25 минут, с моим новым кодом теперь 6минут.
Но появилась одна проблема, которую не могу решить пока что - если в ячейках есть числа с нулем в начале, при перекодировании они исчезают. То есть 011 превращается в 11. А это не нужно.
Сейчас ломаю голову над этим. Если смогу решить эту часть процесса, то внедрю в отдел свой код
Класс! Теперь понимаю необходимость существования различных версий UTF-кодировок.
Очень подробно и понятно, благодарю за такой классный контент!
Вот это концентрация информации!
Тот случай, когда понимаешь, что для понимания потребуется пересмотреть ещё раз пять.
Лучшее видео в рунете про кодировку
Очень грамотно, доступно и наглядно изложено. Автору большое спасибо!
Наткнулся на твой канал, это просто очень круто! Я занимаюсь программистом на высоком уровне и даже не задумывался о таких "мелочах". Спасибо что ты мне это объяснил.
Удачи в развитии канала, контент полезный, шикарный и интуитивно понятный
Контент огонь, автор, это нормально что голова после потока информации идёт кругом?:)
Это лучше по основам программирования, что я видел в русскоязычном сегменте ютуба
Очень полезный контент!
Отличное объяснение!!!
0:26 Одна грамматическая помарка: это не число, а последовательность цифр. Оттого и пошло понятие "цифровой". Число - это величина, а цифра - это знак. Цифра 1 не больше 0, а просто отличный от 0 знак. Замени 1 на "Х" и машина продолжить работать, как ни в чём не бывало. 1 и 0 - это логические символы, а не числа, это булевские true и false, "да" и "нет".
Годно. Пару лет назад искал инфу в интернете и проходил путь ,который этот видос даёт за 20 минут, в течение нескольких часов....
Пожалуйста, продолжай снимать. Я только нашла хороший канал с хорошей подачей материала, не хочу его терять. Буду ждать новые видео😘
Выражаю огромную благодарность автору. Отличный материал, подача, оформление. Все на высшем уровне.
Спасибо.
я периодически посматриваю данное видео, для меня оно как шпаргалка, пасиб мил человек
Ооуу 👍👍👍👍👍
Я примерно так всё смутно и представлял.
Теперь конкретно знаю.
Спасибо 👍👍👍
Ты красавчик!!! Отличные темы берёшь и прекрасные видосы делаешь. Так держать!
Наглядно и понятно, спасибо!
Очень полезный материал!
Вау! Как я жил то без этого)) Спасибо, приисполнился чутка
Лучшее материала по данной теме не нашел, лайк и СПАСИБО! )
учись искать
Хочу выразить благодарность *Alek Os* за доступность и лаконичность подачи информации. Как он преподносит материал ни один лектор/препод в универе/ на курсах так подробно с интузиазмом не расскажет и с такой удачной подачой и илюстрациями. Огромный респект!
Отлично! Лучшее видео по теме! Про Ассемблер (язык ассемблера) - вообще бомба! Подписался.
Огромное спасибо за такой разбор и подробное донесениe информации. Действительно неожиданно увидеть такое в российском сегменте ютуба. Однозначно подписка и лайк! Автору всего лучшего, каналу - подписчиков и процветания!
Побольше подписчиков ! Классный и полезный контент !
Классное видео. Спасибо.
я рассказала инфу из твоего видео на защите проекта и мне поставили 5, спасибо тебе большое
Теперь я знаю, как работает UTF-8! Как же круто
спасибо за видео! очень понятно
Вообще компьютерные технологии развивались не преимущественно в США. У истории другое мнение, но считаю, что этот канал супер. Лайк. Подписка. Автору спасибо!
ну в контексте популяризации и конкретных стандартов: можно сказать в США. IBM, Apple, MS и вот это все очень подстегнуло
@@maksimfedorov2632 не понял про контекст «популяризации». В контексте стандартов использующихся сейчас - конечно же. Я к тому что в СССР компьютерные технологии тоже развивались, и очень активно. Другой вопрос, что по различным причинам СССР из этой «гонки» вышел, по этому стандарты у нас только западные остались(по крайней мере из ширпотреба)
Интернет и сети, в которых понадобилось передавать данные, изначально как раз в США появился в виде ARPANET.
@@__username__ конечно, но автор ролика сказал не «сетевые технологии», а именно «компьютерные технологии», что мягко говоря не точно.
@@Curly_Braces видео про стандарты кодирования текста. В СССР не знаю ни одного стандарта кодирования текста, кроме раскладки на печатной машинке, которая была за 400 лет до изобретения компов. Именно кодирования ни одного стандарта в совке небыло.
Отличный ролик, аж keyrus вспомнился. Спасибо!
Sorax привет) Ах ты робот, вернулся))
Комментарий для продвижения шедеврального материала!
Огромное спасибо за ваш труд!
Здорово сделал видео! Ох, уж и намучался я со строками в С++ xD
Надеюсь на новые видосы. В любом случае спасибо за знания!
СПАСИБО ЗА ВЫПУСК
Спасибо за контент, конспект записан !
Просто комментарий для продвижения данного видео и выведение его в топы!
Спасибо за видео, теперь я хоть немного понимаю в кодировках)
Я как человек, который только начал свой путь в программировании хочу сказать, что ваши видео ПРОСТО СУПЕР!! О сложном получается сказать настолько просто, что поняла даже я. Молю о продолжении!
С меня подписка, лайки и пересмотры видосов по несколько раз 😂
я сначала искал материал про кодировку от алкоголя, но и это оказалось полезным
Качественный контент, спасибо за труд!
Когда проходили это в универе, нам конечно рассказывали про ASCII, но в ролике пропущена интересная часть о том, что у нас была параллельно отечественная КОИ8 а потом и ISO версии кодировок пошли до UTF. На некоторых заводах у нас КОИ8 использовалась очень долго до перехода на юникод. Видимо видео сделано по англоязычной книге.
Дело не в книгах, тут подается информация, полезная для всего мира, и так инфы очень много, а тут еще и наши кодировки надо изучать, которые только нами использовались.
Случайно наткнулся на видео, лайкподписка, мне понравилось :)
Снова наткнулся, а тут мой коммент годичной давности 😅
Какой же всё-таки бардак с кодировками до сих пор... Постоянно стараюсь об этом не думать... Несём с собой грехи отцов, так сказать(((
Бардак везде. Хаос повсюду.
Это все из-за одного отца - Била Гейтса, это его Microsoft устравивала хаос, чтобы под шумок занять первое место на рынке.
Apple, тоже хороши, тоже внесли вклад в это.
Кодировки, это еще не все, есть еще один зоопарк, способы обозначения окончания и перевода строк.
Спасибо. Доступно, понятно, интересно. Не останавливайтесь, у Вас хорошо получается подавать материал.
Отличное изложение, спасибо!
Спасибо за качественный контент. Просто и понятно. 🔥🥇
Человек - это машина, работающая не с текстом, а с образами. Текст - это набор образов, называемых словами, которые мы конвертируем в семантические образы объектов (реальных и воображаемых)
Спасибо! Было интересно и полезно
Сложно, но информация неплохая, надо разбираться
Отлично! Супер!
Спасибо. Очень крутое видео!
Отличное изложение. Все наглядно 🔥
Спасибо за урок !
Спасибо! Очень круто
мне кажется для большего охвата просмотров стоило в названии написать ascii, utf-8, utf-16 и тд.. иначе я не понимаю почему так мало просмотров ведь это же просто шедевр
Здорово. Очень здорово.
Замечательный контент, спасибо!
Крутая подача! Продолжай в том же духе!
Це бомбезно!!! Не зупиняйся! Потрібно більше такого відео!
@@Jansisoev "Проблеми коня не цікавлять шерифа"
Спасибо за видео, было интересно
Автор отлично! Молоток! Продолжай в том же духе.
большое спасибо за видео♥
Смотрю сейчас и мне интонации и музыкальное оформление канал Winderton напомнили. Только тот воду лил и ЧСВ тешил, а тут по существу.
Мне напомнил Sorax, тоже когда-то делал схожий контент
Полезно. Спасибо.
Чисто лайк, спасибо.
Полезно и доступно, жду новые видео
Мега полезно сэр❗🧠
Супер!!
1:26 на этом моменте я подумал о механизме Энигмы. Когда предложение заменяется другим предложением, причём существует набор символов-ключей для восстановления предыдущего предложения. Вроде бы так, но это не точно. Я не помню.
Посетила та же мысль! ахах, тоже не уверен - вроде бы так))))
сподобався цей канал, все чітко пояснив...я підписався!
Ого, это так круто
попало видео в рекомендациях, сначала подумал про алкогольные кодировки)
Есть пара ошибок. Порядок байт в UTF-8 не зависит от порядка байт платформы. Подобная зависимость появляется только если отправить в файл число типа больше 1 байта (или область памяти такие числа содержащую) напрямую. UCS-2, UTF-16, UTF-32 представляются как некоторые числа 16 или 32 бита, даже если код использует utf8 напрямую (а не кодирует в неё при записи) байты они и есть байты, endiannes на них не влияет. И BOM в UTF-8 тоже бывает, но используется как сигнатура для автоматического определения кодировки. Виндовый блокнот, например, его добавляет. 10 в начале у второго и последующих байт символа нужны не для определения порядка, они и непригодны для этого, файл может состоять из мегабайта ASCII и в конце будет встречаться один многобайтный символ, определять порядок байтов при начале чтения в таком случае не получится, а проверять при обработке каждого символа накладно. 10 нужен для обработки смещений. Если указатель указывает на байт 10* то получатель понимает, что ему дали смещение, попадающее в середину символа и либо пропустит до следующего начального байта, либо кинет ошибку.
Вторая ошибка - нелюбовь к UTF-8 в качестве внутренних строк связана не со скоростью, а со старым кодом. Код, считающий что может обрабатывать строку как массив и резать поэлементно, брать любое смещение внутри строки и считать длину в символах, он в принципе не пригоден для UTF-8. Строго говоря, он и для других кодировок непригоден, и дело не только в суррогатных парах, в юникоде полно других служебных символов, модификаторов для добавления надсимвольных элементов, индикаторов для BiDi, но на ошибку с этим ещё надо напороться, а подобную проблему в UTF-8 словишь при первом же не-ASCII символе. В новых языках, чьи библиотеки проектируются после появления юникода, в том же Rust например, тупой индексации байт в строковом типе нет, есть посимвольная итерация по строке или перевод строки в массив символов, в итоге в Rust для внутренних строк используется именно UTF-8 и ему норм
ничего не понял, но очень интересно 🙃
Однозначно лайк!
всё слишком быстро! не успеваю поставить лайк))
Господи, Sorax воскрес!
Я правильно понял, что ascii и unicode это таблицы с символами, а utf8 utf16 utf32 это алгоритми/протоколы кодирования/шифрования символов из unicode таблицы? Спасибо
Да. Но небольшую путаницу внёс сам Microsoft, и в их документации слово unicode может означать utf16
Верно, ASCII и Unicode - это таблицы, в которых указаны соответствия числовых кодов и символов. ASCII определяет коды для основных английских символов, а Unicode расширяет этот набор, включая символы из различных письменных систем.
Кодировки, такие как UTF-8, UTF-16 или UTF-32, определяют правила для хранения числовых кодов символов в памяти компьютера.
Когда вы вводите текст или сохраняете его, каждый символ преобразуется в соответствующий числовой код с использованием таблицы символов, а затем сохраняется в соответствии с выбранной кодировкой. При отображении текста на экране используется рендеринг текста, который преобразует числовые коды символов в графические элементы, отображаемые на экране.
Таким образом, ASCII и Unicode предоставляют таблицы символов, определяющие соответствие между числовыми кодами и символами, а кодировки определяют правила хранения и представления этих числовых кодов в памяти компьютера.
@@teizer1122 Вы сами написали этот текст? Он прекрасен! Всё встало на места
Так вот чем я занимался на уроках программирования :)))
Спасибо за объяснение
высший пилотаж в объяснении просто, я хоть и опытный и вроде много всего мучил с кодировками, но все равно познал много нового, в том числе и исторические причины, почему так. Мое введение в кодировки началось с перекидывания контактов в айпод, там я и узнал, что такое яЛП или BOM подпись. круто, надеюсь это посмотрит каждый, кто учится или уже работает в айти сфере
У тебя талант в преподовании
Спасибо. Чётко, может пацан, вообще ребят. 😊
Пришёл сюда в процессе изучения указателей в Паскале по первому тому Столярова. Всё понял, хоть и смотрел на перемотке. Да, вы друг друга сильно дополняете, он преподносит через книгу доходчиво, а вы иллюстрируете так же грамотно. Если бы не учился по этому учебнику, ничего бы не понял вообще. Спасибо большое!
я бы еще при упоминании ASCII вспомнил такие устройства UNIX систем как терминалы и протокол TELNET