Какие английские буквы можно заменить цифрами
Перейти к содержимому

Какие английские буквы можно заменить цифрами

Как правильно употреблять Leet и другие символы в никнейме

Как правильно употреблять Leet и другие символы в никнейме

Иллюстрация. Автор: rangizzz / Shutterstock.com.

Leet, или как его называют в более просвещённых кругах «1337», — это распространенная в интернете вариация английского языка. Суть в том, чтобы заменять привычные буквы латинского алфавита на цифры или другие знаки. За основу берется визуальное сходство обозначаемой буквы с символом-заменой.

История языка Leet

Сам термин «leet» походит от английского «elite» (элитный) — название статуса на сайте BBS, дающего доступ к файлам, папкам, играм и чатам, содержавшимся на этом ресурсе. Другая теория происхождения языка, и одна из самых популярных та, что связана с первыми хакерами. Все дело в том, что любой поисковик производит анализ каждой страницы интернета для того, чтобы отображать наиболее релевантные ответы на запросы пользователей. И чтобы избежать возможности быть показанными на первых страницах поисковика, хакеры приняли решение начать шифровать обычные слова английского языка и тем самым избежать распознавания их текста третьими лицами. Также язык leet использовался игроками World of Warcraft для общения игроков разных фракций в обход блокировке, ведь заменялись только типичные буквы алфавита, а символы и цифры оставались нетронутыми. Правда, только до определенного обновления, далее же такое общение стало невозможным. И 1337 стал использоваться уже между более опытными игроками чтобы было проще отличить их от новичков. Какой бы не была истинная теория происхождения leet-speak’а, сейчас он выполняет чисто декоративную функцию, ведь последние bbs ресурсы изжили свое, хакеры перешли на более засекреченные языки, а межфракционное общение было пофикшено одним из патчей. «Встречают по одежке, провожают по уму» в эпоху онлайн игр следовало бы изменить на «встречают по нику, провожают по скилу». И чтобы никнейм был действительно внушительным, многие игроки, сами того не зная, используют leet основу. Как часто на просторах интернета можно встретить пользователей с безумным количеством символов и цифр и юзернеймах.

Алфавит Leet и возможные транскрипции

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

Оригинальная латиница Дополнительная кириллица
A /-| или 4 Г r
B 8 Ж >|< или >| < или ]|[
C (или [ З ‘/_
D |) И |/| или l
E 3 Л /\ или J[ или J| или JI или просто J (или латинская версия |_)
F |= или «ph» П || или |^| или /7
G 6 Р |>
H |-| С 5 или латинские версии
I | или ! или 1 У ‘/ или (_)
J ) Ф <|>или qp
K | < или |( Ц |_|_ или ||_
L |_ или 1 Ч ‘-| или 4
M |\/| или /\/\ Ш III или w или LLI
N |\| или /\/ Щ LLL
O 0 или () Ъ ‘b
P |> Ы bI
Q 9 или 0 Ь b или |o
R |? или |2 Э € или -) либо так и остается Э
S 5 или $ Ю |-O или 10
T 7 или + Я 9I или 9 или <| либо так и остается Я
U |_|
V \/
W \/\/ или \X/
X * или >
Y ‘/
Z 2
AT 8
AND & (с тем же успехом заменяет AN, EN)
FOR 4
MATE M8
YOU U

Теперь, уже ознакомившись с основами алфавита leet, можно переходить и к никами. Сам термин nickname переводиться с английского как «прозвище, кличка». Другими словами, ник – это псевдоним, альтернативное имя, с которым ассоциирует себя автор и желает быть названным именно по нику, а не настоящему имени, хотя нередко производные от имени и выступают никами на различных форумах и сайтах. Фото. Автор: Gorodenkoff / Shutterstock.com.

Никнеймы для геймеров

Фото. Автор: Olena Yakobchuk / Shutterstock.com.

Когда геймер начинает покорение очередной онлайн игры, первая проблема, с которой он сталкивается, — это никнейм. Ведь от него зависит слишком многое, если учесть, что вся информация, которой будут располагать игроки на сервере, это именно ник. Игрок с глупым или просто смешных ником рискует быть подвергнуть насмешкам в игровом мире и особенно чате, даже если просто обратиться с просьбой о помощи. Да, мир геймеров не всегда дружелюбен к новичкам. Поэтому выбор ника – дело серьезное и ответственное. У опытных игроков есть пара-тройка ников, которые они уже успешно опробовали в других играх и довольны тем, что есть. Правда, желание создать очередного персонажа или просто косметически преобразить свой аккаунт путем изменения аватарки и ника приводят даже опытных пользователей в неловкое положение, ведь старые ники могут надоесть, а имя любимого героя сериала уже кто-то занял. Вот тут и приходиться выдумывать что-то своеобразное – за дело берется сначала просто никнейм из латинских символов и цифр, но ведь латиницу учат в каждой школе, а цифры и вовсе одинаковые, поэтому вероятность того, что ник уже будет занят очень велика. «Не опускать руки, еще не все вариации использованы», — размахивая зажатой клавишей Shift, на всем ходу забегает в голову leet и дарит возможность не просто получить желаемый ник, но и сделать это максимально уникально, сложно и непривычно, тем самым давая понять казуальным геймерам с простенькими никами, кто тут на самом деле батя. Некоторые leet-замены стали настолько популярны, что в одной игре могли попасться два игрока с одинаковыми символами и цифрами, но при этом разным наполнением. Одним из самых популярных символов-замен был и наверняка до сих пор остается «pro100». Суть этой приставки в ее универсальности применения. Для русскоязычных пользователей эта приставка читается как «просто», что дает возможность вставить после даже свое имя, ведь из-за напускной «простоты» появляется некий шарм, под действием которого даже «pro100vasya» уже и не «простовася», а настолько опытный Вася, что может себе позволить взять себе даже такой ник. В английском же языке приставка «pro100» имеет более крутое значение, ведь «pro» уже сокращение от professional, а 100 будто указывает на стопроцентные навыки игрока, в чьем юзернейме используются.

Другие варианты использования символов в нике

Способов кастомизации ника бесчисленное множество, но самые популярные это просто добавление к уже существующему даты рождения, например. Но тут очень важно не прогадать, ведь иногда информация о дате рождения дает преимущество оппоненту в вербальном споре. Согласитесь, угрозы в чате от игрока с ником «nikita2004» теряют свою силу и не внушают должного страха. Попробуй потом докажи, что это не год рождения, а год получения паспорта. Среди жителей России так же пользуются популярностью цифровые приставки в виде региона проживания, ведь очень удобно. Отличными примерами проникновения leet в ники игроков могут служить прозвища популярных киберспортсменов самых разных дисциплин. Например, 9Pasha (9=Я Pasha, Павел Хвастунов, Virtus.Pro, Dota 2); S1mple (Simple, Александр Костылев, Na`Vi, CS: GO); V1lat (Vilat, Виталий Волочай, самый популярный киберспортивный комментатор). Ники с символами на английском так же неплохой способ сразу вычеркнуть себя из списков русскоязычных игроков, ведь, к сожалению, у большинства иностранных геймеров очень негативные ассоциации с русскоязычными пользователями в силу давно сложившихся клише, разрушить которые пока не видится возможным. Именно поэтому использование никнейма из латинских символов и цифр не то чтобы дает преимущество в игре, но по крайней мере не так бросается в глаза остальным игрокам. Онлайн игры вместе со всей современной культурой пришли с запада, поэтому и логин с символами, буквами и знаками, принадлежащими латинице и в особенности leet`у смотрятся более органично и отдают дань уважения и солидарности геймерскому сообществу по всему миру.

Нужно заменить числа на буквы из алфавита, соответствующие этим числам. Разный результат в программе, как исправить?

Здравствуйте проблема такая, никак не пойму.
Вот задание:
Вам необходимо в строке, полученной со стандартного ввода найти все цифры и заменить их на букву латинского алфавита, располагающуюся по данному индексу (все символы в строке вводятся в нижнем регистре).
Примечание: две цифры не могут располагаться рядом. Те если у вас есть строка «19у» это значит что у вас одна цифра 19, а не 1 и 9. Как результат вы должны получить «sy»
Sample Input:
Hel12o 16e15ple
Sample Output:
Hello people

latin="abcdefghijklmnopqrstuvwxyz" text = input("Введите строку: ") i = 0 s = "" while i < len(text): a = text[i] while "0" 

По заданию фразу "Hel12o 16e15ple" выводит так "Hello pe1eple" - правильно меняет буквы из алфавита до пробела, но после пробела почему-то не правильно.
Если же к примеру ввести фразу "12ghj3jhh23" (просто произвольная) - то здесь выдает "lghjcjhhbc" - последние две цифры не воспринимает как число 23 и выводит по буквам "b" и "c".
Если же к примеру поменять 23 на 24: "12ghj3jhh24" - то тут выводит всё как положено "lghjcjhhx" - все правильно заменяет.
В чем может быть проблема? почему не приязнь у программы к числу 23 и пробелам.
Можно как-то подправить именно этот код, без "наворотов", а то я только учусь и еще не вcе понимаю.

  • Вопрос задан более года назад
  • 4175 просмотров

Leet

Leet или leet speak (транслит. лит спик, от англ. elite — элита) — способ уродования английского языка школьниками, геймерами, wannabe-хакерами (кулхацкерами). Часто обозначается цифрами 1337 (реже 31337 или 1+3+3=7) — это результат полной замены букв похожими по начертанию цифрами в слове «leet». Leet не предназначен для устной речи, а только для письменной. У человека, никогда ранее не встречавшегося с таким явлением, может вызвать смущение и недоумение, так как в некоторых конструкциях сам чёрт ногу сломит, прежде чем поймёт, что написано.

\/\/7|= ? [ править ]

Проверка зрения.

Для leet speak характерны замены максимального количества букв на цифры и псевдографику. Сначала это предназначалось для обхода словофильтров, но потом замену стали делать просто потому, что это кажется крутым. Кроме того, в 1337-speak’е широко применяются намеренные искажения языка, причём считается, что чем изощрённее искажение, тем лучше [2] . Этим он схож с языком падонкав. Использование множественных аббревиатур типа WTF и lol еще более затрудняет чтение. Со временем в leet speak влились и другие правила, например замена «s» на конце слова буквой «z» [3] . Это правило существовало ещё в эпоху модемов и bbs’ок, Leet выполнял своё предназначение как раз в эпоху модемов и BBS. (Если вы, конечно, верите, что жизнь есть за МКАДом и за пределами этой страны). Он был придуман не только чтобы хакеры могли выделиться, но прежде всего для затруднения работы модераторов. Сейчас же его функция скорее декоративная.

IRL смысл в подмене букв цифрами есть: если хакер с профессионально отточенной паранойей царапает какое-нибудь сообщение сообщникам по TOR (не забыв зашифровать всё и с PGP, и с прокси), то при расшифровке крыса-кун не сможет достоверно слить властям что-либо (либо, если нуб, не поймёт ничего сам).

Leet Speak широко использовался в World of Warcraft и был единственным способом общения между альянсом и ордой до определенного патча (фантазёры придумали для орков свой орочий язык, и все английский слова из уст орка менялись на слова на нём, даже LOL и тот менялся на KEK) ". Поскольку буквы заменялись другими буквами или сочетаниями, могли использоваться только цифры и символы [4] .

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

Латиница Дополнительная кириллица
A /-| или 4 Г r
B 8 Ж >|< или >|< или ]|[
C (или [ З '/_
D |) И |/| или l
E 3 Л /\ или J[ или J| или JI или просто J (или латинская версия |_)
F |= или подменяется на «ph» П || или |^| или /7
G 6, вульгарно 9 Р |>
H |-| С 5 или латинские версии
I | или ! или 1 У '/ или (_)
J ) Ф <|>или qp
K | < или |( Ц |_|_ или ||_
L |_ или 1 Ч '-| или 4
M |\/| или /\/\ Ш III или w или LLI
N |\|, иногда ^/ или /\/ Щ LLL
O 0 или (), изредка @ Ъ 'b
P |> Ы bI
Q 9, иногда 0 , изредка 2 Ь b или |o
R |? или |2 Э € или -) либо так и остается Э
S 5 или $ Ю |-O или 10
T 7 или + Я 9I или 9 или <| либо так и остается Я
U |_|, допустимо /_/
V \/
W \/\/ или \X/
X >< или * (звёздочка «астериск»)
Y '/
Z 2
AT или ATE 8 (sms-speak)
AND & (с тем же успехом заменяет AN, EN)
FOR 4
MATE M8
YOU U

В основном для «шифровки» за основу берут внешность символов верхнего регистра (1337 старее Спектрума, тащемта), несмотря на то, что название языка обычно пишется как 1337 вместо |_337, поэтому за G обычно считается 6, а не 9, похожая на строчную g.

Часто путают q=9 и g=9; а также D=|) и P=|>.

  • Цифра 9, если не использовать для редкой и почти бесполезной буквы, «кью», может кодировать довольно распространённые буквы J и Y (звук «йот» во многих языках кодируется как J, а не Y)
    • Интересно, что как раз в японском числительное для 9 очень даже звучит как «кью» (а то и «ку» или «кю»), вот только транслитерируется это, почему-то, по-издевательски: Kyuu.

    Следует иметь в виду, что использование сразу двух методов написания одной и той же буквы ломает частотный анализ шифра (когда одной букве назначают один символ, а дешифровщица с филологическим образованием берёт статистику «в языке таком-то частота использования каждой буквы алфавита такая, в языке сяком-то такая-то, буква О самая распространённая почти везде»: уже подмена части букв «О» сразу и на 0, и на (), и какой-нибудь собачий штрудель @ в банальном «шифре Цезаря» живо ломает частотный анализ (особенно если не делить приоритет для нуля, скобок и собачки поровну). Ждём ебилдов вроде «дешифрующего кольца» для символов лита в роли детских игрушек для мамкиных штирлицев.

    npuMepbl [ править ]

    «Кто−нибудь говорит на лит−спике?»

    • l33t — минимальная замена, бывает хуже
    • R0XX0rZzz — аналог выражения (нечто) Rocks — то есть «ЭТО круто» и т. п.
    • H4XX0R — вместо «-er» используется старый «-or». Звук от буквы «X» означает множественное число.
    • 1337 5P3/-|K — более похоже на правду.
    • moz://a — новый логотип для Mozilla.
    • |\/|A 1337|-|AzK0R 5K17z /-|R 50 1337 — более сложный пример. Перевод: «Ma leet-hacker skills are so elite»
    • |0h34|^ ^^4|-| |V|/\|> 1337 5|
    • I|= U (4/\/ |234|) 7|-|I$ — U R 1337 |\/|4$73|2 — классический 1337. Перевод: «If you can read this — you are leet master» (неграмотность в LeeTe приветствуется)
    • 1 |<|\|()\/\/ |>3()|>|_3 \/\/|-|() |_|53|) 7() 5|>34| < 1337 4 |_07 — I know people who used to speak leet a lot.
    • 1 (4|\|'7 |_||\||)3|2$74|\||) '/0|_||2 \/\/|2!7!|\|9. 17’$ (0|\||=|_|$!|\|6 — «I can’t understand your writing. It’s confusing»
    • l33t supa h4x0r — чит в винрарнейшей игре Age of Mythology. Перевод: «Еlite super hacker»
    • «-z» в слове «lulz» берет свое начало из leet speak
      • А вот «z-» в восклицаниях вроде zOMG, тем не менее, связано с опечаткой вида "палец ударил по клавише «зед», а должен был попасть на «шифт»
      • /\/\AR-15/-\ — всего лишь имя Marisa.
        • m/\!?|$4 — оно же.
        • MAR154 — опять-таки, оно же.

        Как можно заменить каждую букву строки на (рандомную) цифру в php

        Допустим у нас есть $x = 'Hello world'. У меня появился вопрос, как можно заменить каждую букву в $x на рандомную цифру от 1 до 100? У меня есть некоторые предположения, которые, почему то, не работают например я пробовал:

        $x = 'Hello world'; // задаем строку for($i = 0;$i 

        так же, пробовал с помощью str_split():

        но при этом, почему то, появляется много массивов, при выводе которых видно, что буквы в предложении заменены архаично. Так же, в идеале, хотел бы понять, как можно заменить каждую букву в предложении на ее порядковый номер в алфавите(a = 1, b = 2,c = 3 и т.д) Спасибо

        Отслеживать
        задан 12 сен 2021 в 23:35
        yellow_pus yellow_pus
        13 3 3 бронзовых знака
        Алфавит только английский?
        13 сен 2021 в 0:12

        А у меня еще больше вопросов. "Заменить каждую букву" - это значит не трогать пробельные символы и знаки препинания? Во-вторых, в вашем примере, в исходной строке есть, например, два символа o. Для каждого из этих символов нужно генерировать случайное число или же все o должны заменятся одним сгенерированным? Т.е. в первом случае это может быть Hell77 w88rld , а во воторм - Hell77 w77rld . И в-третьих, регистр символов надо учитывать?

        13 сен 2021 в 1:07
        а почему в задании "заменить", а в коде стоит "вывести"?
        13 сен 2021 в 5:16
        И да, у меня тоже много вопросов. Надо ли будет потом заменять обратно числа на буквы
        13 сен 2021 в 5:16

        2 ответа 2

        Сортировка: Сброс на вариант по умолчанию

        Решения "в лоб" (предполагается использование только латиницы):

        • Замена каждой буквы на случайное число в диапазоне от 1 до 100:
        , $sTxt ); echo $sRes; 
        • Замена каждой буквы на её порядковый номер в алфавите:
        , $sTxt ); echo $sRes; 

        Отслеживать
        ответ дан 13 сен 2021 в 2:28
        33.1k 6 6 золотых знаков 29 29 серебряных знаков 71 71 бронзовый знак

        Да, спасибо, этот код работает, но я не могу разобраться с функцией preg_replace_callback(). А именно, какое значение надо вставлять в первый аргумент данной функции(в данном примере, не понятно что такое '/\w/' и за какие критерии строки это отвечает)?

        13 сен 2021 в 16:33
        @yellow_pus: /\w/ - это регулярное выражение. Почитать про функцию preg_replace_callback .
        13 сен 2021 в 16:41

        Спасибо, разобрался, а во втором примере(в рандомное число) не совсем понятно. Зачем и какой элемент находится в [0](где $matches[0]) и зачем мы преобразуем из букв в байты(в верхнем регистре) и отнимаем от этого 64?

        13 сен 2021 в 17:31

        @yellow_pus: рандомное число - это в первом примере 😉 А во втором: 1) Также находим буквы регуляркой, 2) Так как $matches возвращает массив, а нам нужен первый (читай, единственный) символ, то $matches[0] . 3) Приводим символ к верхнему регистру strtoupper() , так как в алфавите, что большие, что маленькие буквы равнозначны. 4) Получаем код текущего символа ord() и вычитаем из него смещение (в таблице символов, A имеет код 65) - таким образом вычисляем порядковый номер буквы в алфавите.

        13 сен 2021 в 17:44

        Так ord() же возвращает целое число от 0 до 255(php.net/manual/ru/function.ord.php)? То есть мы получаем из "H" число, допустим, 210, затем вычитаем 65, получается 146, но это ведь не то число что нам нужно

        13 сен 2021 в 19:27

        Зацеплюсь за эту часть задачи: "в идеале, хотел бы понять, как можно заменить каждую букву в предложении на ее порядковый номер в алфавите(a = 1, b = 2,c = 3 и т.д) ".

        $in_glass = "Hello world"; $array = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; for ($i = 0; $i < mb_strlen($in_glass); $i++) < $char = mb_strtolower(mb_substr($in_glass, $i, 1)); $k = 1; foreach ($array as $val) < if ($char == $val) < $char = $k; break; >$k++; > $result .= $char; > print $result; 

        Этот же пример с array_flip()

        $in_glass = "Hello world"; $array = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; $array_new = array_flip($array); for ($i = 0; $i < mb_strlen($in_glass); $i++) < $char = mb_strtolower(mb_substr($in_glass, $i, 1)); foreach ($array_new as $val =>$value) < if ($char == $val) < $char = $value+1; break; >> $result .= $char; > print $result; 

        На сколько я знаю, нельзя просто пробежать по слову циклом, нужно брать функции, которые вытаскивают букву посимвольно, например mb_substr Если расматривать изначальную задачу: "как можно заменить каждую букву в $x на рандомную цифру от 1 до 100?", то вот так:

        $in_glass = "Hello world"; $array = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']; for ($i = 0; $i < mb_strlen($in_glass); $i++) < $char = mb_strtolower(mb_substr($in_glass, $i, 1)); foreach ($array as $val) < if ($char == $val) < $char = rand(0,100); break; >> $result .= $char; > print $result; 

        Ответ: 7681812846639 69262692966374

        При данном методе не надо учитывать пробелы, знаки препинания и спец символы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *