python — Проблемы с кодировкой при скачивании html с помощью requests

Пытаюсь спарсить страницу http://mezgil.kz/. Python 3. Получаю кракозябры типо таких:

Код ниже, скрипт сохранен в utf-8. Я не знаю что может быть не так, ведь другие сайты норм парсятся:

# -*- coding: utf-8 -*-
import requests
result = requests.get('http://mezgil.kz', timeout=30.0)
page = result.text
print(page)
  • html
  • python
  • python-3.x
  • кодировка
  • requests

1

import requests
result = requests.get('http://mezgil.kz', timeout=30.0)
result.encoding='utf-8'
page = result.text
print(page)

Документация — http://docs.python-requests.org/en/master/user/quickstart/

1

requests неверно кодировку ответа определил. Для r.text использовалась iso-8859-1 вместо правильной в этом случае

utf-8, поэтому кракозябры напечатались.

Сервер не указал кодировку в Content-Type http заголовке, поэтому requests выбрал кодировку по умолчанию для http iso-8859-1 (бесполезный и часто вредный выбор, основанный на устаревшей RFC 2616), не пытаясь посмотреть на html-содержимое ответа, в котором прописана другая кодировка <meta charset="utf-8">. Разработчики объясняют это тем, что requests это http библиотека, а не html библиотека.

Правила как именно кодировка должна быть указана (указывать ли в разных местах (как в Content-Type заголовке так и в html документе или только в html документе), что имеет приоритет, BOM, какая кодировка по умолчанию) менялись со временем. Сейчас html5 просто utf-8 требует: «The Encoding standard requires use of the UTF-8 character encoding». См. Require UTF-8. Поэтому можно жёстко прописать:

response.encoding = 'utf-8'
print(response.text)

Если сайт использует какую-то другую кодировку, не указанную в http заголовке, то практичная опция это использование BeautifulSoup класса, специализированного для работы с html и который может поддерживать даже случаи когда документ представлен из смеси кодировок. См. A good way to get the charset/encoding of an HTTP response in Python.

0

Есть еще один очень неплохой вариант получить байты напрямую и уже их расшифровывать, например:

data = requests.get(url)
text = data.content.decode('UTF-8')

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки

как определить и настроить с помощью онлайн-инструментов

26971

How-to – Читать 8 минут

Прочитать позже

ЧЕК-ЛИСТ: ТЕХНИЧЕСКАЯ ЧАСТЬ — СЕРВЕР

Инструкцию одобрил
SEO-специалист в Luxeo

Илья Беланенко

Чтобы информация на страницах сайта отображалась нормально — устанавливайте правильную кодировку. Если кодировка выбрана верно, а на сайте вместо нужного контента все равно выводятся «ьХПНЙЮЪ», придется устранять ошибки.

Содержание:

  1. Что такое кодировка сайта
  2. Как определить кодировку сайта
  3. Как влияет кодировка сайта на SEO
  4. Как решать проблему неправильной кодировки
  5. Кодировка при помощи онлайн инструментов
  6. Вместо заключения

Что такое кодировка сайта

Кодировка — это набор связанных между собой символов кода и их воспроизведение на экране. По сути, это способ передачи знаков алфавита, цифр, спецсимволов в виде байтов.

Сейчас используются две самые популярные кодировки:

  • UTF-8;
  • Windows 1251.

В пределах одного ресурса иногда применяют разные кодировки. В этом случае и происходит некорректное отображение информации. Чтобы избежать проблем, желательно выбирать единый стандарт, тогда системы не будут конфликтовать между собой.

Ряд специалистов считает более предпочтительным вариант UTF-8. Его поддерживают все серверы, площадки, самые популярные поисковики и браузеры.

Вторая кодировка была создана для обслуживания русификаторов операционной системы Windows. Поэтому популярность у нее ниже.

Как определить кодировку сайта

Кодировку сайта можно узнать через исходный код. Для этого необходимо:

  • открыть нужную веб-страницу;
  • нажать сочетание клавиш «CTRL + U» — появится такая страница:
  • затем нажать клавиши «CTRL + F», чтобы открылось окно поиска вверху:
  • ввести в поиск слово «charset» и посмотреть, какая возле него указана кодировка.

В данном случае — UTF-8.

Если после всех манипуляций ничего не нашлось, возможно, кодировка пока не задана.

Для проверки используются специальные сервисы. Один из них — Serpstat.

В модуле Аудит сайта можно создать проект для вашего домена и проверить, есть ли ошибка в кодировке. Создайте проект для сайта и укажите страницы, которые нужно проверить. Затем начните сканирование.

После того, как отчет будет сформирован, перейдите во вкладку Все проверки и нажмите на ошибку Не указана кодировка.

Сервис покажет все страницы, на которых была обнаружена ошибка, информацию по ней и рекомендацию по устранению.

Чтобы быстро узнать какие проблемы есть у твоего сайта и получить рекомендации по их устранению, нажимай на Проверить свой сайт.

Еще подойдет Browserstack. Следует завести аккаунт и в течение тестового периода совершить проверку веб-сайта.

Зайдите в личный кабинет сервиса Browserstack. Выберите нужные устройства и запустите проверку:

После этого вы увидите, как отображается ваш сайт на различных устройствах и операционных системах.

Также проверить можно через Validator, который определяет кодировку с заголовков HTTP и остальных данных в документе.

Хотите узнать, как с помощью Serpstat найти и исправить технические ошибки на сайте?

Оставьте заявку и наши специалисты проконсультируют вас по продвижению вашего проекта, поделятся учебными материалами и инсайтами рынка!

Заказать бесплатную консультацию

Как влияет кодировка сайта на SEO

Стандартные кодировки сайтов могут отличаться, все зависит от сайта. Поисковые машины распознают и проиндексируют текст все равно. Однако важно проверить, чтобы при его отображении не появлялись нечитаемые символы, иероглифы.

Ошибки встречаются, если кодировка сервера не совпадает с кодировкой сайта. И даже несмотря на то, что робот в этом случае сможет распознать контент и выдавать его в поисковой выдаче правильно, пользователи будут уходить.

Непонятный набор символов не несет никакой смысловой нагрузки и не вызывает доверия. Посетители не будут тратить время и усилия на самостоятельную настройку кодировки через браузер. Потому что не каждый знает, как это выполнить, или просто не посчитает необходимым терять свое время. Из-за этого будет падать посещаемость и, соответственно, доход.

Поэтому влияние кодировки на SEO — косвенное. Оно сосредоточено на поведенческих факторах, глубине просмотра и на показателе отказов.

Как решать проблему неправильной кодировки

Выделяют несколько этапов решения проблемы:

  • кодировка в meta-теге;
  • кодировка документа;
  • кодировка в .htaccess;
  • кодировка в базе данных MySQL.

Кодировка в meta-теге

Тег meta задает нужную кодировку. Для этого при создании любого HTML-документа вебмастера указывают ее в блоке head. Пример:

Данный фрагмент не является готовым кодом, поэтому перед его внедрением необходимо консультироваться со специалистами.

Кодировка документа

Готовые текстовые HTML-файлы также необходимо сохранять в выбранной кодировке. Для этого достаточно воспользоваться текстовым редактором Notepad++. Просто откройте в нем документ, перейдите в раздел «Кодировки», затем — «Преобразовать в UTF-8 без ВОМ».

Если сделать с ВОМ, появятся пустые символы. Они также выполняют свою функцию, однако в данном случае не будут лишними символами.

Кодировка в .htaccess

Если при открытии веб-страниц непонятные символы все равно появляются, измените настройки сервера. Для этого откройте файл .htaccess в корневой директории и пропишите в нем строку:

AddDefaultCharset UTF-8

Если файла нет, следует его создать. Настройки сохранить. Сервер перезапускать не надо.

Кодировка в базе данных MySQL

Поскольку ресурс держится еще и на базах данных, следует заменить кодировку в таблицах и полях. Если нечитаемые символы не исчезают, исключить проблему в подключении. Для этого подключитесь к серверу баз данных на правах пользователя mysql root.

mysql  -u root -p

Выберите нужную базу данных:

USE имя_базы;

Выполните запрос:

SET NAMES ‘utf8’;

Кодировка при помощи онлайн инструментов

Кодеры и декодеры, именно так называются эти инструменты, зашифровывают и расшифровывают информацию с помощью юникод кодировки. Пользователям без специальных навыков могут быть больше интересны именно декодеры. Они выручают, если прислали непонятный набор символов, — преображают его в читабельный текст.

Самые популярные из них:

2cyr. Универсальный декодер — конвертер кириллицы. Вставьте текст в окно дешифратора. Программа сама попытается подобрать кодировку и перекодирует его. Также на сайте описываются ситуации, при которых расшифровка невозможна, и объясняются пути решения проблемы.

Foxtools. Еще один декодер с автоматическим определением кодировки. Прост и удобен в использовании.

Вместо заключения

На каждом сайте необходимо задавать кодировку. Это позволит преобразить контент в читабельный для пользователя вид. При выборе кодировок желательно отдавать предпочтение UTF-8. Она самая популярная, ее распознает большинство поисковых машин, площадок, браузеров.

Чтобы узнать, правильно ли отображается кодировка на контенте веб-ресурса, используйте онлайн-инструменты:

  • Serpstat;
  • Browserstack;
  • Validator.

Также вы можете воспользоваться и готовыми инструментами, которые преобразуют набор символов в читабельный вид.

  • 2cyr;
  • Foxtools.

Для SEO кодировка важна, чтобы опубликованный контент отображался в нормальном виде. Если пользователи получат на веб-ресурсе набор иероглифов вместо текста, они перестанут посещать сайт. В результате ухудшатся поведенческие факторы, а затем упадет ранжирование.

Поэтому отслеживайте отображение контента, следите через системы метрик за посещаемостью, отказами и глубиной просмотров, которые могут натолкнуть на мысль об ошибке с кодировкой.

Задавайте вопросы в комментариях или пишите в техподдержку.:) А также вступайте в чат любителей Серпстатить и подписывайтесь на наш канал в Telegram.

Serpstat — набор инструментов для поискового маркетинга!

Находите ключевые фразы и площадки для обратных ссылок, анализируйте SEO-стратегии конкурентов, ежедневно отслеживайте позиции в выдаче, исправляйте SEO-ошибки и управляйте SEO-командами.

Набор инструментов для экономии времени на выполнение SEO-задач.

7 дней бесплатно

Оцените статью по 5-бальной шкале

4.4 из 5 на основе 10 оценок

Нашли ошибку? Выделите её и нажмите Ctrl + Enter, чтобы сообщить нам.

Используйте лучшие SEO инструменты

Подбор ключевых слов

Поиск ключевых слов – раскройте неиспользованный потенциал вашего сайта

Возможности Serpstat

Возможности Serpstat – комплексное решение для эффективного продвижения вебсайтов

Кластеризация ключевых слов

Кластеризация ключевых слов автоматически обработает до 50 000 запросов в несколько кликов

SEO аудит страницы

Проанализируйте уровень оптимизации документа используя SЕО аудит страницы

Рекомендуемые статьи

How-to

Denys Kondak

Как настроить цепочку сертификатов SSL и почему это необходимо

How-to

Denys Kondak

Что такое input type = password и почему это поле угрожает безопасности пользователя

How-to

Denys Kondak

Какого размера должен быть Description для успешного продвижения страницы

Кейсы, лайфхаки, исследования и полезные статьи

Не успеваешь следить за новостями? Не беда! Наш любимый редактор подберет материалы, которые точно помогут в работе. Только полезные статьи, реальные кейсы и новости Serpstat раз в неделю. Присоединяйся к уютному комьюнити 🙂

Нажимая кнопку, ты соглашаешься с нашей политикой конфиденциальности.

Поделитесь статьей с вашими друзьями

Вы уверены?

Спасибо, мы сохранили ваши новые настройки рассылок.

Сообщить об ошибке

Отменить

Наборы символов HTML — Dofactory

9#
.
900 19 2
9001 9 55
9 0019 = 900 19 Латинская заглавная буква A 9000 4 9000 4 9000 4
9000 4 9000 4
9000 4 900 17 9001 9 б 90 019 f 9001 9 л 90 019 v 9 0017 9001 9   9 0019 ƒ 9 0017 9001 9   900 17 9 0019   9 0019 147 900 04 90 019 — 9001 9 161 9 0019 ¦ 9001 9   900 19 178 90 019   90 017 900 19 Ô 90 019 У 900 17 90 017 9 0004 900 19 ì 90 019   90 004 90 019 ù 900 04
Номер ASCII-код АНСИ 8859 UTF-8 Описание
32 пробел
33 ! ! ! ! восклицательный знак
# # # Знак номера
36 $ $ $ $ знак доллара
37 % % % % знак процента
38 и и и и амперсанд
39 апостроф
40 ( ( ( () левая скобка
41 ) ) ) ) правая скобка
42 * * * * звездочка
43 + + + + плюс 9 0020
44 , , , , запятая
. . . точка
47 / / / / Солидус
48 0 0 0 0 цифра ноль
49 1 1 1 1 цифра один
50 2 2 2 цифра два
51 3 3 3 3 цифра три
52 4 4 4 4 90 020 цифра четыре
53 5 5 5 5 цифра пять
54 6 6 6 6 цифра шесть
7 7 7 7 цифра семь
56 8 8 8 8 цифра восемь
57 9 9 9 9 цифра девять
58 : : : : двоеточие
59 ; ; ; ; точка с запятой
60 < < < < знак меньше
61 = = = знак равенства
62 > > > > знак больше
63 ? ? ? ? знак вопроса
64 @ @ @ @ коммерческий в
65 A A A A
66 B B B B Заглавная латинская буква B
67
C
C C C Заглавная латинская буква C
68 Д Д Д D Заглавная латинская буква D
69 E E E E Заглавная латинская буква E
70 F F F F Заглавная латинская буква F
71 G G G G Заглавная латинская буква G
72 Н Н Н H Заглавная латинская буква H
73 I I I
I
Заглавная латинская буква I
74 Дж Дж Дж Дж Заглавная латинская буква J
75 K K K K Заглавная латинская буква K
76 л л л L Заглавная латинская буква L
77 M M M M Заглавная латинская буква М
78 Н Н Н Н Заглавная латинская буква N
79 O O O O Заглавная латинская буква O
80 П П П P Заглавная латинская буква P
81 Q Q Q Q Заглавная латинская буква Q
82 Р Р Р Р Заглавная латинская буква R
83 S S S S Заглавная латинская буква S
84 Т Т Т T Заглавная латинская буква T
85 U U U U Заглавная латинская буква U
86 В В В В Латинская заглавная буква V
87 W W W W Латинская заглавная буква W
88 Х Х Х X Заглавная латинская буква X
89 Y Y Y Y Заглавная латинская буква Y
90 Z Z Z Z Латинская заглавная буква Z
91 [ [ [ [ ] левая квадратная скобка
92 \ \ \ 9 циркумфлекс акцент
95 _ _ _ _ нижняя линия
96 ` ` ` ` серьезное ударение
97 a a a a Строчная латинская буква a
98 b б б Строчная латинская буква б
99 c c c c Строчная латинская буква c
100 d d d d Строчная латинская буква d
101 e e e e Строчная латинская буква e
102 f f f Строчная латинская буква f
103 г г г г Строчная латинская буква г
104 9002 0 h h h h строчная латинская h
105 Латинская строчная буква i j j Строчная латинская буква j
107 k k k k Строчная латинская буква k
108 л л л Строчная латинская буква л
109 m m m m Строчная латинская буква m
110 n n 900 20 n n Строчная латинская буква n
111 o o o o Строчная латинская буква o
112 p p p p Строчная латинская буква p
113 q q q q Строчная латинская буква q
114 r r 9002 0 r r Строчная латинская буква r
115 s s s s Строчная латинская буква s
116 t 90 020 t t t Латинская строчная буква t
117 u u u u Латинская строчная u
118 v v v Строчная латинская буква v
119 w w w w Строчная латинская буква w
120 x x x x Строчная латинская буква x
121 y y y y Латинская строчная буква y
122 z z z z Строчная латинская буква z
123 { { { { левая фигурная скобка
124 | | | | вертикальная линия
125 } } } } правая фигурная скобка
126 ~ ~ ~ ~ тильда
127 ДЕЛ
128 Знак евро
129   НЕ ИСПОЛЬЗУЕТСЯ 900 20
130       одинарная нижняя девятка
131       Строчная латинская буква f с крючком
132       двойная двойная 9-кавычка
133       многоточие по горизонтали
134       кинжал
135     двойной кинжал
136   ˆ     буква модификатора циркумфлекс акцент
137       Знак промилле
138 90 020   Š     Латинская заглавная буква S с кароном
139   одинарная левая кавычка
140   Œ       Латинская заглавная лигатура OE
141   НЕ ИСПОЛЬЗУЕТСЯ
142   Ž     Латинская заглавная буква Z с кароном
143   НЕ ИСПОЛЬЗУЕТСЯ
144   НЕ ИСПОЛЬЗУЕТСЯ
145         левый одинарный кавычка
146       правая одинарная кавычка
  »     левая двойная кавычка
148       правая двойная кавычка
149       маркер
150 тире
151     длинное тире
152   ˜     маленькая тильда 9002 0
153       товарный знак
154   š     Латинская строчная буква s с двоеточием
155     9 0020   одинарная правая кавычка
156       Малая латинская лигатура oe
157   НЕ ИСПОЛЬЗУЕТСЯ
158  ž     Латинская строчная буква z с двоеточием
159   Ÿ   90 020   Латинская заглавная буква Y с диэрезисом
160 неразрывный пробел
  ¡ ¡ ¡ перевернутый восклицательный знак
162  ¢ ¢ ¢
163   19 £ Знак фунта стерлингов
164   ¤ ¤ ¤ знак валюты
165   90 020 ¥ ¥ ¥ знак иены
166   ¦ ¦ сломанный стержень
167   § § § знак сечения
168   ¨ ¨ ¨ diaeresis
169   © © © copyright sign
170   ª ª ª feminine ordinal indicator
171   « « « двойная кавычка, указывающая влево
172   ¬ ¬ ¬ без знака
173   90 020 мягкий дефис
174   ® ® ® регистрационный знак
175   ¯ ¯ ¯ макрон
176 ° ° °знак градуса
177   ± ± ± знак плюс-минус
  ² ² ² верхний индекс два
179   ³ ³ ³ верхний индекс три
180   ´ ´ ´ острый акцент
181   µ µ µ микрознак
182 знак
183   · · · средняя точка
184   ¸ ¸ ¸ седилья
185  ¹ ¹ ¹ верхний индекс один
186   º º 9 0020 º мужской порядковый номер двойная кавычка вправо
189   ½ ½ ½ обыкновенная дробь одна половина
190   90 020 ¾ ¾ ¾ обыкновенная дробь три четверти
191   ¿ 9002 0 À À перевернутый вопросительный знак 019 À Заглавная латинская буква А с гравировкой
193   Á Á Á Латинская заглавная буква А с острым знаком
194   Â Â Â Заглавная латинская буква A с циркумфлексом
195   Ã Ã Ã Латинская заглавная буква А с тильдой
196 9002 0   Ä Ä Ä Латинская заглавная буква А с диэрезисом
197   Å Å Å Латинская заглавная буква А с кольцом вверху
198   Æ Æ Æ Заглавная латинская буква AE
199   Ç Ç Ç Заглавная латинская буква C с седиллой 900 20
200 È È È Латинская заглавная буква E с гравировкой
201   É 9 0020 É É Латинская заглавная буква E с острым знаком
202   Ê Ê Ê Латинская заглавная буква E с циркумфлексом
203   Ë Ë Ë Латинская заглавная буква E с диэрезисом
204   М М М Латинская заглавная буква I с гравировкой
205   Í Í Í Латинская заглавная буква I с остротой
206   Î Î Î Латинская заглавная буква I с циркумфлексом
207   Ф Ф Ï Латинская заглавная буква I с диэрезисом
208   Ð Ð Ð 9002 0 Латинская заглавная буква Eth
209   Ñ Ñ Ñ Латинская заглавная буква N с тильдой
210   Ò Ò Ò Латинская заглавная буква O с гравировкой
211   Ó Ó Ó Латинская заглавная буква O с острым знаком
212   Ô Ô Латинская заглавная буква O с циркумфлексом
213   х х х латинская заглавная буква О с тильдой
214   Ö Ö Ö Заглавная латинская буква O с диэрезисом
215   × × × знак умножения
21 6   Ø Ø Ø Заглавная латинская буква O со штрихом
217   Ù Ù Ù Латинская заглавная буква U с гравировкой
218   У УЛатинская заглавная буква U с остротой
219   Û Û Û Латинская заглавная буква U с циркумфлексом
220   Ü Ü Ü Латинская заглавная буква U с диэрезисом
221   Ý Ý Ý Латинская заглавная буква Y с остротой
222 Þ Þ Þ Латинская заглавная буква Thorn
223   ß 90 020 ß ß Латинская строчная диез s
224   à à à Строчная латинская буква a с запятой
225   á á á 900 20 Строчная латинская буква а с акутом
226   â â â Строчная латинская буква a с циркумфлексом
227 900 20   ã ã ã Строчная латинская буква a с тильдой
228   ä ä ä Строчная латинская буква a с диэрезисом
229  х х х Строчная латинская буква a с кольцом вверху
230   æ æ æ Строчная латинская буква ae
231   ç ç ç Латиница строчная буква c с седиллой
232   è è è строчная латинская буква e с запятой
233   é é é Латинская строчная буква e с акутом
234   ê ê 9002 0 ê Строчная латинская буква e с циркумфлексом
235   ë ë ë Латинская строчная буква e с диэрезисом
236   ì ì Строчная латинская буква i с запятой
237   í í í Строчная латинская буква i с акутом
238 9002 0   î î î Строчная латинская буква i с циркумфлексом
239   ï ï ï Строчная латинская буква i с диэрезисом
240 ð ð ð Строчная латинская буква eth
241   Строчная латинская буква n с тильдой
242   х х х Строчная латинская буква o с гравировкой
243   Строчная латинская буква o с остротой
244   ô х х Строчная латинская буква o с циркумфлексом
245   х х х Строчная латинская буква o с тильдой
246   ö ö ö Строчная латинская буква o с диэрезисом
247   ÷ ÷ ÷ Знак деления
248   ø ø ø Строчная латинская буква o с чертой
249   ù ù Латинская строчная буква u с запятой
250   ú ú ú Латинская строчная буква u с акутом
251   û х х Строчная латинская буква с циркумфлексом
252   ü ü ü Строчная латинская буква u с диэрезисом
253   ý ý ý Строчная латинская буква y с акутом
254   þ þ þ Строчная латинская буква thorn
255   о о о Строчная латинская буква y с диэрезисом

Почему это важно?

В настоящее время я участвую в конкурсе #100DaysOfCode и документирую свое путешествие в Твиттере. До сих пор я рассматривал священную тройку веб-разработки: HTML, CSS и JavaScript. На четвертый день я поделился, что одним из моментов, которые я рассмотрел, была важность включения в HTML-файл.

День 4️⃣:
Поболтал с @JustDeVonT о поиске работы (кто ищет роль разработчика/технической поддержки!) и просмотрел некоторые #JavaScript

Закончил ночь с некоторыми #HTML:
* узнал о важности включения внутри


* базовая анатомия HTML-страницы

#100DaysOfCode

04:42 — 15 октября 2020

Я получил ответ с просьбой объяснить, почему. Пока я печатал свой ответ, я обнаружил, что мне есть что сказать, чтобы уместиться в один твит, и было бы проще написать сообщение в блоге.

Разобьем строку , чтобы получить ее значение:

  • — это HTML-тег, который содержит метаданные о веб-странице, или, точнее, дескрипторы, которые сообщают поисковым системам, какой тип содержимого веб-страницы скрыт от отображения.
  • charset — это HTML-атрибут, который определяет кодировку символов, используемую вашим браузером при отображении содержимого веб-сайта.
  • utf-8 — это специфическая кодировка символов.

Другими словами, указывает браузеру использовать кодировку символов utf-8 при переводе машинного кода в человекочитаемый текст и наоборот для отображения в браузере.

Сегодня более 90% всех веб-сайтов используют кодировку UTF-8. До того, как TF-8 стал стандартом, использовалась ASCII. К сожалению, ASCII кодирует только английские символы, поэтому, если вы использовали другие языки, алфавит которых не состоит из английских символов, текст не будет правильно отображаться на вашем экране.

Например, предположим, что я хочу отобразить текст на арабском языке с надписью «Hello World!» на экране, используя следующий фрагмент кода с набором символов , равным ascii :

 

<голова>
   

<тело>
   

!مرحبا بالعالم

Войти в полноэкранный режимВыйти из полноэкранного режима

Теперь, если вы зайдете в браузер, вы увидите, что текст отображается как тарабарщина 🥴:

Однако, если мы изменим кодировку на utf-8 , код будет следующим:

 

<голова>
   

<тело>
   

!مرحبا بالعالم

Войти в полноэкранный режимВыйти из полноэкранного режима

Теперь текст отображается правильно 🥳:

Таким образом, UTF-8 был создан для устранения недостатков ASCII и может переводить почти все языки мира.