И так всем привет. Сегодня я бы хотел положить конец холивару по поводу кириллицы в Е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 эту функцию можно применять так:
Добавлять плюсик, как утверждает КАС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. Найти данное чудо можно здесь *клик*. Надеюсь теперь холиваров по поводу кириллицы уже не будет.
Внезапно полчища нек Покроют земную твердь. И если одна муркнет — «ня», Миллионы ответят — «смерть»!
В тексте, перед httpUrlDecode, ставить "+" не обязательно, я так раньше писал писал, т.к. считал что именно так и должно быть, хотя и не обязательно. И ты не написал где и что редактировать с NotePad++
KACbIM (22.06.2016, 01:57) писал: В тексте, перед httpUrlDecode, ставить "+" не обязательно, я так раньше писал писал, т.к. считал что именно так и должно быть, хотя и не обязательно. И ты не написал где и что редактировать с NotePad++
Спасибо, добавил.
Внезапно полчища нек Покроют земную твердь. И если одна муркнет — «ня», Миллионы ответят — «смерть»!
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!
Покроют земную твердь.
И если одна муркнет — «ня»,
Миллионы ответят — «смерть»!