gegmopo4: (Default)
[personal profile] gegmopo4

Офигеть! В 20-х годах XXI века всё ещё существуют проблемы с кодировкой. И не у поделки какого-нибудь Джона Пупкина из Лос-Мухосранска, а у лидера публичных сетевых сервисов, у Гугля. Пользоваться Google Groups для русскоязычных (и прочих, использующих кириллицу) пользователей невозможно (те же проблемы испытывают греки и частично немцы). Нет, письма по почте, к счастью, проходят (хотя я вижу многочисленные жалобы и на проблемы с этим). Но попробуйте посмотреть архивы через веб:

О©╫О©╫О©╫О©╫О©╫О©╫.

О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ 3 О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫:

1. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
2. О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫
3. О©╫О©╫О©╫О©╫О©╫О©╫О©╫

Не знаю, сколько раз и в какие и из каких кодировок перекодирован текст для получения этих «смайликов», но очевидно, что среди этих преобразований было несколько разрушительных. Весь текст превратился в повторения триады «О©╫», исходный текст не восстановил бы и Шерлок Холмс. Да, в заголовках писем кодировка указана, и правильная.

Разработчики Гугля отмахиваются от таких мелких проблем — у них же всё работает. Проблему с кодировкой обосновывают тем, что другие не придерживаются стандартов — а значит и они не будут придерживаться их тоже. И идут лесом не те, кто стандартов не придерживается, а те, кто придерживается.

Возможное частичное решение. Говорят, что помогает использование UTF-8 в новых письмах. Но кодировку письма не всегда можно задать. И уже существующие архивы это, понятно, не спасёт.

P. S. По всей видимости это преобразование ASCII → UTF-8 (с игнорированием ошибок), а потом KOI8-R → UTF-8. Уничтожение текста происходит ещё на первом шаге, но и второй после первого бессмысленен. Что-то я начинаю нехорошо думать о программистах Гуголя.

Date: 2011-01-07 07:10 pm (UTC)
From: [identity profile] beldmit.livejournal.com
У yahoo те же проблемы скорее всего. А уж в архивах письма нечитаемые, хотя при указании кодировки можно бы все привести к utf-8.

Date: 2011-01-08 05:04 am (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Так привели. Два раза.

Судя по всему, у них стоит фильтр, который пытается по эвристике определить кодировку. Только вот проверка на ASCII у них оказывается успешной, а на самом деле портит текст. Очевидно, ожидается, что кодек выбросит исключение для нетранслируемых символов, -- а он просто тихо заменяет их на "�".

Date: 2011-01-08 08:59 am (UTC)
From: [identity profile] pasha-semionov.livejournal.com
Я уже давно придумал фантастическое решение. Фантастическое - это в смысле "как можно было бы сделать", а не что делать в реальных условиях. Надо в начале каждого текста указывать его кодировку по стандартной схеме (одной на всех!). Естественно, это указание должно содержать только латинские буквы, цифры и знаки препинания. Например, почему бы не взять из HTML? Там же в начале указывается . Вот этот последний кусочек и взять - charset равно чему-то (windows-1251, utf-8, ...). Оно же - из HTTP. И каждая программа, которая показывает (или ещё как-то обрабатывает) текст, должна сначала читать, какая у него кодировка, и переключаться на неё. Таким образом, описание кодировки текста будет присутствовать в начале самого текста...

Date: 2011-01-08 09:00 am (UTC)
From: [identity profile] pasha-semionov.livejournal.com
Я написал, как оно там вначале указывается, а ЖЖ эту строчку проглотил... Очевидно, он посчитал её тегом HTML :)

Date: 2011-01-08 11:39 am (UTC)
ext_605364: geg MOPO4 (Default)
From: [identity profile] gegmopo4.livejournal.com
Это не фантастика, это стандарты. Уже давно в служебных заголовках письма указывается тип и кодировка, например:
Content-Type: text/plain;
  charset=KOI8-R

или
Content-Type: text/html; charset="utf-8"

Аналогично указывается и в служебных заголовках ответа веб-сервера. Уже давно, лет 10-15, если не 20.

Проблема в том, что некоторые устаревшие клиенты (преимущественно это относится с распространённым продуктам MS, хотя есть и другие уроды) плюют (плевали) на стандарт. Если просто не указывают кодировку и на той стороне приходится угадывать -- ещё полбеды. Хуже, если указывают неверно. Тогда другим приходится "угадывать", что в клетке лев, даже если на ней написано "бык". И вот на этом этапе искусственный интеллект Гуголя даёт сбой для кириллицы.

Profile

gegmopo4: (Default)
gegmopo4

November 2017

S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728 2930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 29th, 2026 11:45 pm
Powered by Dreamwidth Studios