Не могу разобраться с кодировкой в скрипте, Не могу разобраться с кодировкой в скрипте |
Здравствуйте, гость ( Вход | Регистрация )
Не могу разобраться с кодировкой в скрипте, Не могу разобраться с кодировкой в скрипте |
5.3.2010, 16:53
Сообщение
#1
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 2 Регистрация: 5.3.2010 Пользователь №: 6 266 Спасибо сказали: 0 раз |
Грей 0.17
Суть скрипта: По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета,не иеемт занчнеия, в кокам пряокде рсапожолена бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы не чиатем кдаужю бкуву по отдльенотси, а все солво цликеом. Проблема: не получается оседлать русскую кодировку о0 Код dcpp = {}
math.randomseed(os.time()) function dcpp.PreviewPublicMessage(sHubUrl, sMsg) local sArg = sMsg:match"^/t(.*)" if sArg then sArg = sArg:match"%s+(.*)" if sArg then DC():SendPublicMessage(sHubUrl,sArg) DC():SendPublicMessage(sHubUrl,mag(sArg)) return 1 end end return nil end function tblr(t) local n = #t while n > 1 do local k = math.random(n) t[n], t[k] = t[k], t[n] n = n - 1 end return t end function mag(ma) local mai,str,hj={},'',#ma-2 if hj<2 then return ma end local h,j,k=ma:sub(1,1),ma:sub(-1),ma:sub(2,-2) for i=1, hj+1 do mai[i]=k:sub(i,i) end mai=tblr(mai) for i=1, hj+1 do str=str..mai[i] end return h..str..j end |
|
|
5.3.2010, 17:43
Сообщение
#2
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Грей использует кодировку utf8, в которой русские буквы занимают по 2 байта, поэтому нельзя перемешивать байты одной буквы, ибо получится совершенно другой символ. Выход есть. Нужно из utf8 перейти в кодировку cp1251 и работать уже в ней (в ней русские буквы занимают по 1 байту).
В грее есть функции DC():FromUtf8(str) и DC():ToUtf8(str). Воспользуйся ими для перевода сначала в cp1251, а после всех операций обратно в utf8. |
|
|
5.3.2010, 17:53
Сообщение
#3
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 2 Регистрация: 5.3.2010 Пользователь №: 6 266 Спасибо сказали: 0 раз |
Спасибо! =) Странно... вроде уже побывал так, но криво =) А после тебя все нормуль =)
|
|
|
Похожие темы
|
Сейчас: 23.11.2024, 1:48 |