Последние новости закрыть

Кириллица в Е2 - Правда или нет?

0
Главные редакторы
0
Участник
Ablageyl
10:04, 10.08.2016
И так всем привет. Сегодня я бы хотел положить конец холивару по поводу кириллицы в Е2.
Честно сказать в Е2 можно без особых усилий писать на русском. То есть использовать кириллицу. Есть 2 способа написать что угодно на русском в Е2.
Первый способ - функция httpUrlDecode()
Давайте же разберёмся что это за функция?
httpUrlDecode() - функция позволяющая декодировать url коды в нормальный текст.
Непонятно правда? Теперь давайте разберём что это вообще за такие url коды и как их получить что бы потом декодировать?

Кодирование URL и просто двоичных данных в последовательность букв, цифр и некоторых специальных знаков латинского алфавита в интернете было связано с ограничением физических устройств на передачу только алфавитно-цифровых символов.
В URL такое кодирование обычно применяется для передачи символов в формате Unicode (как правило UTF-8) в
последовательность из двух байт, записанных в шестнадцатиричном представлении.
Каждый байт предваряется знаком %. При таком кодировании строчка "корова" будет иметь вид: %D0%BA%D0%BE%D1%80%D0%BE%D0%B2%D0%B0. То есть русской букве к будет соответствовать последовательность %D0%BA и.т.д. Такое кодирование является общепринятым для путей к файлам или папкам, входящим в URL.

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

Закодировать в строки с процентами кириллицу из других кодировок можно в этом HTML редакторе.
После того как мы получили кракозябру типа %D1%82%D0%B5%D1%81%D1%820 мы вставляем её в нашу функцию httpUrlDecode(). В EGP эту функцию можно применять так:
S:egpText(1,+httpUrlDecode("%D1%82%D0%B5%D1%81%D1%82"),vec2(15,15))
Добавлять плюсик, как утверждает КАСbIМ не нужно. Однако запись с плюсиком и без тоже является верной.
Теперь ознакомимся со вторым способом. Он конечно более муторный, но в тоже время и более лёгкий. Заключается он в том что мы будем писать наш код не в редакторе Expression 2, а в любом редакторе для програмиздов на нашем компике, но "Блокнот" и "Word" для этих целей не подойдут. По этому советую качнуть NotePad++ по этой ссылке.
Теперь когда у нас есть редактор - в нём мы должны открыть наш код написанный в игре и перевести его в кодировку UTF-8 (Без BOM). Файл с исходником можно найти в папке data/expression2 в корневой папке Garry's Mod. Например: C:\Steam\SteamLibrary\steamapps\common\GarrysMod\garrysmod\data\expression2
Преобразовать файл в кодировку UTF-8 можно так:







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

S:egpText(1,"Food:No",vec2(25,50)) — оригинал

S:egpText(1,"Еды нет :(",vec2(25,50)) — перевод

Если же после всех этих манипуляций у вас остались проблемы то мне вас жаль, ибо рукожопие не лечиться то советую взглянуть на таблицу поддерживаемых символов юникода, т.е. кодировки UTF-8. Найти данное чудо можно здесь *клик*. Надеюсь теперь холиваров по поводу кириллицы уже не будет.
Внезапно полчища нек
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
Посетители
0
Новичок
KACbIM
02:02, 22.06.2016
В тексте, перед httpUrlDecode, ставить "+" не обязательно, я так раньше писал писал, т.к. считал что именно так и должно быть, хотя и не обязательно. И ты не написал где и что редактировать с NotePad++
Главные редакторы
0
Участник
KACbIM (22.06.2016, 01:57) писал:
В тексте, перед httpUrlDecode, ставить "+" не обязательно, я так раньше писал писал, т.к. считал что именно так и должно быть, хотя и не обязательно. И ты не написал где и что редактировать с NotePad++


Спасибо, добавил.
Внезапно полчища нек
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
 
Доступ закрыт.
  • Вам запрещено отвечать в темах данного форума.