Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 28.07.2024, 07:02
Аватар для seregadushka
Аспирант
Отправить личное сообщение для seregadushka Посмотреть профиль Найти все сообщения от seregadushka
 
Регистрация: 10.07.2024
Сообщений: 39

вывод: для JS браузер меняет кодировку, с правильной UTF-8 , в которой есть места на все символы и смайлы мира (и еще 6 раз по столько же). но Хромиуму это мало, 1900000 недостаточно, надо изменить кодировку.


roland ,
"document.characterSet".
-- для HTML это UTF-8 , без сомнения.

т.е. выяснили: браузер знает про UTF-8 , но для JS он ее меняет.
Прошло 32 года, но это БАГ настоящий баг Хромиума , начиная с 1 его версии.
Сейчас занято 145000 символов, я думаю, там есть место для наших 33 буков.
Даже интересно , на какую кодировку он меняет, и почему там китайские иероглифы. Их много ,
Яндекс: "от 40 до 50 тыс" . Значит , эта кодировка, содержит 50 000 иероглифов, но места для русского там не нашлось.

Я думал , в браузере есть поле, где написана кодировка. Я не знаю где, думал , вы знаете.
Ответить с цитированием
  #22 (permalink)  
Старый 28.07.2024, 08:22
Аспирант
Отправить личное сообщение для roland Посмотреть профиль Найти все сообщения от roland
 
Регистрация: 02.11.2023
Сообщений: 30

Сообщение от seregadushka Посмотреть сообщение
Исходный файл. Возможно, я его скачал с чужого сайта , в комплекте со со всем остальным. Но комменты мои , в простом Notepad++, который его пересохраняет в UTF-8.
https://seregasmyfavoritesites.on.dr...test24/show.js

Чистый файл после сложнейшей операции в Notepad++ : "File- New ... .TXT"
https://seregasmyfavoritesites.on.dr...est24/TEST.txt

Он же после замены расширения на .JS
https://seregasmyfavoritesites.on.dr...test24/TEST.js
Вам будет проще помочь, если Вы прикрепите все 3 файла к сообщению в виде вложений. Форум позволяет это сделать.
Ответить с цитированием
  #23 (permalink)  
Старый 28.07.2024, 10:59
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,742

Сообщение от seregadushka
wlx_HexViewer_1.1.1.1_Beta.7z -- для Тотала
У тотала есть средства просмотра в 16 виде. Не редактор, а просто просмотр.
В файле https://seregasmyfavoritesites.on.dr...test24/show.js нормальная utf-8 кодировка.
Сообщение от seregadushka
Вот русские буквы :
Нужен 16 вид.
Сообщение от seregadushka
коды первых 256 буков совпадают.
Коды первых 128 букв совпадают.
Сообщение от seregadushka
но то т же браузер в "Просмотр кода страницы " уже не видит русский , это не UTF-8 .
Ну да. В этом режиме он почему то не берет utf-8 по умолчанию.

У Хрома нет средств менять кодировку страницы непосредственно в браузере. Они предлагают устанавливать плагины.
Ответить с цитированием
  #24 (permalink)  
Старый 29.07.2024, 12:18
Аспирант
Отправить личное сообщение для roland Посмотреть профиль Найти все сообщения от roland
 
Регистрация: 02.11.2023
Сообщений: 30

Сообщение от seregadushka Посмотреть сообщение
Прошло 32 года, но это БАГ настоящий баг Хромиума , начиная с 1 его версии.
Вы хотите сказать, что, к примеру, в Firefox у Вас результаты другие? У меня на последней стабильной версии Firefox аналогичные с Chrome: на вашем хостинге JS - отображаются с неправильной кодировкой (Big5), а TXT - с правильной (UTF-8).

Из личного интереса было сделано то, что Вы и советовали:
Все 3 предоставленные файла были залиты на личный хостинг. И все 3 файла отображаются с правильной кодировкой (UTF-8).

Теперь к сути проблемы:

Ваш HTTP-сервер (или настройки Amazon CloudFront - Вам виднее) отдаёт JS-файлы с заголовком "content-type" без директивы "charset", а для TXT-файла - с директивой "charset" со значением "UTF-8".

Это единственная причина, почему TXT-файл на Вашем хостинге отображается в браузере в кодировке UTF-8.

Если директива "charset" для заголовка ответа "content-type" не определена, браузер будет использовать автоопределение кодировки (а не UTF-8 по умолчанию, в чём было моё ошибочное предположение). В данном случае, и Chrome, и Firefox ошибочно определили кодировку как Big5 (можете проверить значение document.characterSet). Возможно они даже используют одну и ту же библиотеку для этого.

Причина, по которой у меня на хостинге все три файла отображаются в браузере в UTF-8:
Мой HTTP-сервер всегда по умолчанию подставляет директиву "charset" со значением "UTF-8" для заголовка ответа "content-type".

Вы можете проверить сами, открыв ваши JS-файлы по прямой ссылке и переписать значение заголовка ответа "content-type", добавив директиву "charset" со значением "UTF-8" (Chrome это позволяет):
application/javascript; charset=UTF-8

Вывод: Если не хотите, чтобы браузеры угадывали кодировки Ваших текстовых файлов, настраивайте HTTP-сервер с подстановкой директивы "charset" с нужной кодировкой по умолчанию. Браузеры здесь ни при чём.
Ответить с цитированием
  #25 (permalink)  
Старый 29.07.2024, 14:22
Аватар для seregadushka
Аспирант
Отправить личное сообщение для seregadushka Посмотреть профиль Найти все сообщения от seregadushka
 
Регистрация: 10.07.2024
Сообщений: 39

ну вот понятно ,спасибо.
Я всегда ставил (просто копировал)
<meta http-equiv="Content-Type" content="text/html;  />

а эта вещь стоит отдельно
<meta charset="utf-8">

и никогда не думал зачем это, если оно везде у всех одинаково.

но ведь это относится в HTML странице, а не моим файлам из Notepad++
Поэтому, я не понимал претензий ко мне, как я могу в .TXT или .JS вводить куски HTML.

Я занимаюсь только своими страницами, и не в курсе даже как посмотреть , что там отдает сервер, в каких протоколах.

Big5 -- она чисто для китайцев, кодирует максимум FFFF , т.е. 65536 буков китайского типа.
Я понял, что это вина сервера, которому какой-то узкоглазый записал эту кодировку. Чем его UTF-8 с 1900000 символами не устроила, не понятно.
Эта кодировка тоже не вчера придумана: в 1997 , потом была модернизация в 2003. Потом еще раз.
И за все эти разы в узкоглазой башке не появилась мысль -- удалить ее с сервера. Чтобы у того не было даже вариантов такой подставы вредительской.

Неeжели им проще разработать cвою кодировку, организовать ее принудительное внедрение на всех серверах страны и мира, чем отправить e-mail с кучкой своих иероглифов в контору UNICODE ?

Я раз за вас, что вы можете менять свои сервера. У меня хостинг -- это просто доcтуп по webdav. Протоколы менять там негде.
Конечно, никто ответы сервера менять не будет. Это же только комменты для JS -- не видно для конечного юзера.
Но исследование такой мелочи проведено глобальное

Последний раз редактировалось seregadushka, 29.07.2024 в 15:00.
Ответить с цитированием
  #26 (permalink)  
Старый 29.07.2024, 18:40
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,742

Сообщение от seregadushka
Я понял, что это вина сервера, которому какой-то узкоглазый записал эту кодировку.
Это скорее вина не сервера, а браузера. Когда кодировка не указана в заголовке, браузер сам как то пытается ее определить, использую эвристические алгоритмы. Ну и не может. В принципе одна и та же последовательность байт может встречаться как в big-5 так и d utf-8. Браузер отдает предпочтение big-5
Ответить с цитированием
  #27 (permalink)  
Старый 30.07.2024, 11:40
Аватар для seregadushka
Аспирант
Отправить личное сообщение для seregadushka Посмотреть профиль Найти все сообщения от seregadushka
 
Регистрация: 10.07.2024
Сообщений: 39

В принципе, тема уже освещена полностью. Мелкие уточнения:
1. Utf-8 самая первая и самая емкая — в нее влазит около 1900000 символов, но она ограничена до 1200000 для совместимости со своими более молодыми версиями utf-16, utf-32. По-моему рекомендовано их не использовать. В utf -8 половина содержания - это служебные биты. Может, авторам они нужнее.

2. Я правильно понимаю, что в самом TXT JS нет указания на их кодировку ? Мои плагины HEX показывают что ни в начала , ни в конце в них нет ⛔ служебных байтов.

Все ваши советы по установке charset относятсятся к странице, а не текстовым файлам.
Откуда сервер знает 129 символ — это иероглиф или русская Ы ?
Расскажите уже на пальцах
Ответить с цитированием
  #28 (permalink)  
Старый 30.07.2024, 15:08
Аспирант
Отправить личное сообщение для roland Посмотреть профиль Найти все сообщения от roland
 
Регистрация: 02.11.2023
Сообщений: 30

Сообщение от seregadushka Посмотреть сообщение
Я правильно понимаю, что в самом TXT JS нет указания на их кодировку ?
Именно так.

Сообщение от seregadushka Посмотреть сообщение
Все ваши советы по установке charset относятсятся к странице, а не текстовым файлам.
Это относится ко всем HTTP-запросам данных, которые Вы хотите просматривать в браузере. Нужно понимать, что браузер - в первую очередь программа для просмотра HTML-файлов, а не "голых" текстовых данных с неизвестными кодировками.

Если Вы хотите использовать браузер для просмотра текстовых файлов, ему необходимо помочь с определением кодировки.
В первую очередь браузер ищет кодировку в значении директивы "charset" HTTP-заголовка ответа "content-type".
Если браузер директивы "charset" не находит, он пытается угадать кодировку.

В случае HTML-файлов, если директивы "charset" нет, браузер ищет кодировку в атрибуте "charset" элемента "meta". Обратите внимание, что у директивы "charset" HTTP-заголовка ответа "content-type" приоритет выше.

По этой причине, если хостинг чужой, директивы "charset" в заголовке ответа "content-type" для HTML-файлов быть не должно, чтобы у пользователя была возможность использовать HTML-файлы с любой желаемой кодировкой, которую он укажет в атрибуте "charset" элемента "meta".

Сообщение от seregadushka Посмотреть сообщение
Откуда сервер знает 129 символ — это иероглиф или русская Ы ?
HTTP-сервер не знает. У HTTP-сервера задача простая - отдавать биты данных и некоторую дополнительную информацию с помощью HTTP-заголовков. Определение кодировки - задача браузера, а помочь ему в этом - задача распространителя данных (директива "charset" для всех файлов или атрибут "charset" для HTML-файлов).


Я не знаю, зачем Вам понадобилось просматривать JS-файлы в "голом" текстовой виде в браузере вне DevTools, но в Вашем случае может помочь одно из расширений, которое позволяет указывать кодировку для отдельных доменов, чтобы все файлы отображались в желаемой (UTF-8) кодировке. Попробуйте поискать расширения по запросу "Character Encoding" или "Charset".
Ответить с цитированием
  #29 (permalink)  
Старый 30.07.2024, 15:43
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,134

Что мешает прочитать документацию utf-8? https://datatracker.ietf.org/doc/html/rfc3629
Всего пару страниц текста и ненужно никаких фантазий с "освещена полностью" ...
Ответить с цитированием
  #30 (permalink)  
Старый 30.07.2024, 21:17
Аватар для seregadushka
Аспирант
Отправить личное сообщение для seregadushka Посмотреть профиль Найти все сообщения от seregadushka
 
Регистрация: 10.07.2024
Сообщений: 39

MallSerg,
после 3 страниц этой тем давать ссылку на название стандарта utf-8? Даже в Wiki больше написано. Здесь нет разработчиков utf-9, подробности utf-8 не нужны, которых там и нет.
С utf-8 все понятно -- она уже ДАВНО стандарт.
Сам вопрос в том, почему в 2024 году всплывают еще другие колировки ? И всплывают неправильно. И своим застрявшим в прошлом существованием не дают жить единственной , имеющей право на жизнь , utf-8
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Как получить index изображения? jeysmook jQuery 29 17.02.2013 14:58