LINUX.ORG.RU
ФорумTalks

Для Питонистов появилась статья «Почему вы не можете перевернуть строку с флагом Emoji?»

 , ,


1

1

Собственно, сабж. https://davidamos.dev/why-cant-you-reverse-a-flag-emoji/

Enjoy your unicode.

★★★★★

Последнее исправление: saahriktu (всего исправлений: 1)

Влом читать без перевода. Влом читать. Влом. Перескажи в двух словах, плиз.

IPR ★★★★★
()
Ответ на: комментарий от IPR

Если в двух словах, то при переворачивании «🇺🇸» Питон выдаёт «🇸🇺». А при переворачивании «🇺🇸123» - «321🇸🇺». Потому, что юникод.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Psilocybe

Добавление списка исключений в функцию переворачивания

IIIypuk ★★★★
()

Enjoy your unicode.

Это не проблема юникода, а конкретной строковой библиотеки, которая utf на кодовые точки зачем-то разбивает...

atrus ★★★★★
()

Почему вы не можете перевернуть строку с флагом Emoji?

Потому что кодировки с рандомным числом байт на символ говно?

ya-betmen ★★★★★
()
Ответ на: комментарий от izzholtik

А как предлагаешь такое реализовать без комбинирования символов?

Слоями.

Слой букв.

Слой ударений (диакритических знаков).

И т.д. Сжимать по-слойно архиватором. Можете забирать в поте́нты.

Mirage1_
()
Ответ на: комментарий от izzholtik

Комбинировать разные шрифты сложновато будет

Арифметическое кодирование для этого есть.

Можно даже корректирующие коды навесить, и никакого архиватора не надо.

Mirage1_
()
Ответ на: комментарий от izzholtik

разные шрифты сложновато

Шрифты не нужны. Они всё равно только распознаются. Кому важна форма букв, могут картинками рисовать. Уникод должен был появляться в процессе обработки непосредственно перед печатью-экраном. А злой жобс засунул его всем человекам в stdout, от того и проблемы.

DonkeyHot ★★★★★
()
Ответ на: комментарий от izzholtik

А как предлагаешь такое реализовать без комбинирования символов?

Та комбинируй сколько влезет, нужно просто число байт зафиксировать.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)

Всё просто: флагам нечего ловить в юникоде.

byko3y ★★★★
()
Ответ на: комментарий от izzholtik

Никак. Не нужны такие символы в шрифтах. Шрифты для символов применяемых в есстественных языках.

X512 ★★★★★
()
Ответ на: комментарий от X512

Но насколько более насыщенным станет общение на лоре!

izzholtik ★★★
()
Ответ на: комментарий от X512

Никак

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

ls-h ★★★★★
()

О, питон ещё неплохо справляется.

Shadow ★★★★★
()
Ответ на: комментарий от atrus

а конкретной строковой библиотеки

Неплохой шанс для UTF-32 или UTF-1024...

Shadow ★★★★★
()
Ответ на: комментарий от theNamelessOne

Открытие не моё, я только разместил ссылку. В KOI8-R нет флагов и нет таких проблем.

Автор статьи - David Amos, один из авторов книги «Python Basics: A Practical Introduction to Python 3».

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

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

static_lab ★★★★★
()

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

Virtuos86 ★★★★★
()
Последнее исправление: Virtuos86 (всего исправлений: 1)
Ответ на: комментарий от static_lab

Не всем нужны словари кроме русско-английского и англо-русского.

Ну, а так я уже давно за юникод и UTF-8. 2-го сентября буду праздновать 30-ти летие UTF-8.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от Virtuos86

Какой-то чудак

Это, на минуточку, один из авторов книги «Python Basics: A Practical Introduction to Python 3», а не просто какой-то рандомный чудак.

Да и разве в 3-ем Питоне не заточено всё под UTF-8? Там, на минуточку, даже бинарных пайпов из коробки нет. Потому, что пайпы текстом, а текст, без вариантов, в UTF-8, а в строку в UTF-8 далеко не всякую бинарную простыню можно загнать.

saahriktu ★★★★★
() автор топика
Ответ на: комментарий от saahriktu

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

Тыц!
Ты, наверное, пыхтон по упомянутой книжке этого чудака учил.

Virtuos86 ★★★★★
()
Ответ на: комментарий от izzholtik

В реальности не всем нужно решать задачу сжатого хранения текста. И вот те кому нужно пускай как хотят так её и решают. А запихивать эту "оптимизацию" прямо внуть кодировки это рукожопие.

ya-betmen ★★★★★
()
Ответ на: комментарий от Virtuos86

По исходникам Питона. Речь именно о пайпах:

import pipes

mypipe = pipes.Template()
mypipe.append('myprog', '--')
with mypipe.open('pipefile', 'w') as pfptr:
    pfptr.write(myblob)
TypeError: write() argument must be str, not bytearray

Потом запилю тему о том, как это можно обходить при помощи одной из моих софтин.

saahriktu ★★★★★
() автор топика
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от Virtuos86

Какой-то чудак решил развернуть строку с юникодным символом стандартными средствами языка

Работает в нормальных прикладных языках (swift, elixir). Питон слишком старый чтобы в нём это всё работало.

x3al ★★★★★
()
Ответ на: комментарий от ya-betmen

Ну не. Юникод - это про унификацию, чтобы и в СМСках, и на лорчике можно было 🦓🐴🦄. А ты предлагаешь вытащить комбинирование символов на уровень приложения и наслаждаться тонной частичных реализаций и удивительных багов.

izzholtik ★★★
()
Ответ на: комментарий от static_lab

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

Зачем вообще в одну кодировку пихать все символы? Можно было бы сделать текст с множеством кодировок. некий формат бинарной разметки: следующие 128 байт это кодировка abc, другие 256 байт это кодировка xyz, и т.п. Большинство алфавитов влезают в один байт.

ls-h ★★★★★
()
Ответ на: комментарий от izzholtik

У тебя и так символы комбинируются внезапно(!) на уровне приложения, или ты считаешь, что 4 байта сами в картинки превращаются?

ya-betmen ★★★★★
()
Ответ на: комментарий от ls-h

Можно было бы сделать текст с множеством кодировок. некий формат бинарной разметки: следующие 128 байт это кодировка abc, другие 256 байт это кодировка xyz, и т.п.

Работать с таким — ад (см. shift-jis). Если побьётся поток байтов, то восстанавливать — тоже ад. UTF-8 лучше.

x3al ★★★★★
()
Ответ на: комментарий от PolarFox

SVG’шками непотребные части тела.

А в эмодзях такого нет? Я как-то упустил про это дело... Как тогда их отображать? Тем более, в наше время нестандартных полов надо сделать все возможные комбинации любых половых признаков, т.к. стандартных символов «мэ» и «жэ» уже недостаточно.

ls-h ★★★★★
()
Ответ на: комментарий от ya-betmen

Такая же мерзота.

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

ls-h ★★★★★
()
Ответ на: комментарий от ls-h

Сколько весёлая какашка в SVG будет занимать? Несколько килобайт? И это надо каждый раз вместо какашки или значка гендера вставлять SVG вместо 4 байт (или сколько там?) на символ в юникоде.

Конечно, в эпоху современного шеба такая экономия это смешно, но всё-таки.

TheAnonymous ★★★★★
()
Ответ на: комментарий от TheAnonymous

Сколько весёлая какашка в SVG будет занимать?

А что будет с юникодом, если туда поместить все варианты? Где какашка в виде радуги для единорогов? А для утончённых девочек в виде бабочек? Понос фонтаном?

Несколько килобайт?

Зато сейчас все эти КБ лежат на устройствах. Мне никто весёлую какашку не присылал, но она у меня лежит. Зачем?

такая экономия это смешно

Вот именно!

ls-h ★★★★★
()
Ответ на: комментарий от ya-betmen

Она не накладывает не решающих никаких проблем ограничений.

izzholtik ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.