@Linda-chan

Linda-chan

Линда Кайе
Linda-chan

Дата рождения: 01.11.1983

Тотальная неудачница и убийца жёстких дисков. Самая большая поклонница Ариэль. Член ордена Вселенского тормоза имени Осаки-сан. Любительница каваййных переднеприводных машинок. Суккуб на полставки. Когти прилагаются.

https://www.lindachan.net

10 я читаю 59 меня читают
15880 постов
26645 комментариев
Linda-chan
27 May 2015

Угнич вырвался из застенок и тут же схватил обострение. Рано выпустили, рано...
http://juick.com/2786799

27 May 2015

Я НЕ ХОЧУ ПИСАТЬ ЧЁРТОЧКИ, Я ХОЧУ ВЫБИРАТЬ СМАЙЛИКИ МЫШКОЙ ИЗ МЕНЮШКИ!!!!!!1111111111111111

#vnkar/4 в ответ на /1
27 May 2015

Чет не вижу там пригоревшей жопы Тони. Почистил штоле?

27 May 2015

Сам пост и есть, не? У него и раньше с юникодом проблемы были из-за старого софта. Тот же 💯 не постился.

#vnkar/6 в ответ на /5
28 May 2015

Sych, основная мысль оппоста «мы хотели перейти на UTF-8, чтобы больше не заморачиваться с кодировками, а вот всё равно заморачиваемся». Но он упускает из виду, что сама задача поменялась: кодировка значительно усложнилась (поэтому и пришлось вводить верхние плоскости).

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

В комментариях там ещё больший ад, там многие комментаторы соревнуются в невежестве. Приз в этом конкурсе незнания достаётся eugene-pnf, который написал писульку с критикой, не ознакомившись с принципами выделения символов (в частности, совместимости «1 символ в 1 символ»).

#vnkar/7 в ответ на /1
28 May 2015

@zikmok, ващет дело ТОЛЬКО в MySQL, на минуточку // как я понял

#vnkar/8 в ответ на /7
28 May 2015

kolenka, нет. Дело в том, что уникодчики сначала взяли мало кодовых мест, а потом добавили. MySQL просто проверяет правильность строк согласно первому уникоду.

#vnkar/9 в ответ на /8
28 May 2015

@zikmok, нет. В UTF-8 влезает всё на свете. Это только MySQL имплементнул подмножество. Вчитайся, погугли

#vnkar/10 в ответ на /9
28 May 2015

kolenka,

Вчитайся, погугли

Воспользуйся своим советом сам.

Это только MySQL имплементнул подмножество.

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

#vnkar/11 в ответ на /10
28 May 2015

@zikmok, речь не про уникод, а про utf-8
вот статья про суть происходящего: http://www.war-worlds.com/b...upport-in-mysql-is--

там есть строка For reasons that completely escape me, MySQL 5.x limits UTF-8 strings to U+FFFF and smaller. That is, the "BMP". Why they call this encoding "UTF-8" is beyond me, it most definitely is not UTF-8.

#vnkar/12 в ответ на /11
28 May 2015

kolenka,

For reasons that completely escape me

А причина очевидна: обратная совместимость. Разработчики MySQL пообещали, что кодировка utf8 проверяет, чтобы символ входил в число возможных в первом стандарте уникода символов. Определили public interface, так сказать. А дальше в новых версиях придерживаются этого public interface.

Кто ж знал, что уникод расширит количество доступных кодовых мест. Знали бы — сформулировали бы правильность иначе.

MySQL 5.x limits UTF-8 strings to U+FFFF and smaller

Потому что в первой версии уникода были только символы от U+0000 до U+FFFF, поэтому символы выше были ошибочны. Вот оно и проверяет UTF-8 на наличие ошибок.

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

#vnkar/13 в ответ на /12
28 May 2015

@zikmok, мы явно с тобой о разном говорим, потому что оба подробно аргументируем свою позицию, но к общему не приходим. Давай откроем заново http://juick.com/ugnich/2786799 с которого всё началось. Там написано:

сделать UTF-8 единственной кодировкой
emoji в UTF-8 не поддерживаются
менять utf8 на utf8mb4

Ты постоянно зачем-то говоришь про уникод. Да, ты прав про уникод. Ты прав. Но уникод и utf-8 это две разные вещи. В этом треде только ты говоришь про уникод. И угнич, и мускуль, и я - все говорят про utf-8

Так вот, правда в том, что в utf-8 всё поддерживается, это только кодеры мускуля придумали utf8 и utf8mb4 больше никто. Причём у мускуля utf8 - ненастоящий utf8, потому и потребовался ещё один utf8mb4. У всех остальных людей ОДИН utf8, в который всё влезает и всё поддерживается.

Не надо говорить про уникод, я про него знаю, я понял твой взгляд. Я просто подчеркну, что мы говорим о разных вещах. Если говорить о уникоде - я признал твою правоту. Если говорить о utf8 - ты признай мою правоту.

#vnkar/14 в ответ на /13
28 May 2015

kolenka, UTF-8 — это система представления уникода. С какой стати ты отделяешь одно от другого?

У всех остальных людей ОДИН utf8, в который всё влезает и всё поддерживается.

Потому что авторы большинства программ не так волновались об обратной совместимости, как авторы MySQL, и поменяли правила проверки на правильность символов. Или вообще её не реализовывали.

#vnkar/15 в ответ на /14
28 May 2015

С какой стати ты отделяешь одно от другого?

Потому что я смотрел в сырые байты строковых констант в отладчике. Я смотрел в байты файлов, которые я сохранял то в Unicode то в UTF-8 в Far Manager. Это совсем разные вещи.

Например, в Qt внутри все строки хранятся в Unicode.
И можно сделать toUtf8 - http://doc.qt.io/qt-5/qstring.html#toUtf8

#vnkar/16 в ответ на /15
28 May 2015

kolenka,

Я смотрел в байты файлов, которые я сохранял то в Unicode

Ты видел не уникод per se, а одно из его представлений, UCS2 или UTF-16.

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

#vnkar/17 в ответ на /16
28 May 2015

Я предлагаю перейти на UTF-64 и прекратить мучения раз и навсегда.

#vnkar/18 в ответ на /17
28 May 2015

@zikmok, окей, тогда мы пришли к согласию, и единственное разногласие между нами в том, что ты хвалишь мускульцев за то, что они диапазон U+0000 до U+FFFF назвали utf8, тогда как я и тот автор блога и прочие в треде считают, что это было ошибкой, надо было назвать его UCS2 или UTF-16. Тогда бы не возник этот тред, так как угнич не ругал бы emoji

#vnkar/19 в ответ на /17
28 May 2015

Linda-chan, в utf-8 слезает всё на свете, даже небо, даже Аллах. Не надо никакого UTF-64

#vnkar/20 в ответ на /18
28 May 2015

UTF-8 - это способ кодирования юникода, цель которого - оптимизировать размер данных. Но он оставляет, как оказалось, простор для фантазии. С UTF-64 всё будет однозначно, никаких фантазий, а ещё мы будем готовы к контакту с внеземными цивилизациями.

#vnkar/21 в ответ на /20
28 May 2015

kolenka,

тогда как я и тот автор блога и прочие в треде считают, что это было ошибкой, надо было назвать его UCS2 или UTF-16

Какого чёрта называть UTF-8 названием другой кодировки?

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

MySQL не переводит UTF-8 в UCS2. Она просто проверяет.

#vnkar/22 в ответ на /19
28 May 2015

Один хрен есть комбинирующие символы, так что фантазировать всё равно придётся :}

#vnkar/23 в ответ на /21
28 May 2015

Что значит «не ожидал»? Пусть выходят из анабиоза пока не поздно. Ах, да :3

#vnkar/24 в ответ на /22
28 May 2015

Это фантазии другого рода ^^'
// Этого каммента почему-то не было в жаббере OO

#vnkar/25 в ответ на /23
28 May 2015

А почему они не изменят алгоритм проверки? Неужели сразу же у всех программы поломаются, ибо рассчитывали именно на такой алгоритм?

#vnkar/28 в ответ на /22
28 May 2015

Linda-chan,

А почему они не изменят алгоритм проверки?

Потому что совместимость. Уже пообещали, что там будут только символы до U+FFFF, вот и приходится выполнять обещания.

Неужели сразу же у всех программы поломаются, ибо рассчитывали именно на такой алгоритм?

а) У других программ либо другой подход к совместимости (там поменяли втихаря, т.к. решили, что ничего плохого не случится), либо к проверке целостности данных (вообще не проверяли строки на валидность и принимали что попало).

б) И да, во многих программах ошибки с верхними плоскостями были. Совсем не давно Скайп выводил эти символы как два квадратика, например.

#vnkar/29 в ответ на /28
28 May 2015

s/не давно/недавно/

#vnkar/30 в ответ на /29
28 May 2015

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

#vnkar/31 в ответ на /29
28 May 2015

Всё гораздо проще, MySQL просто умирающее некро :}

#vnkar/32 в ответ на /31

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.