Перекодировка в скрипте Lua 5.14 из CP-1251 в UTF-8, Источник в CP-1251 ( http://bash.org.ru/random ), получатель UTF-8 |
Здравствуйте, гость ( Вход | Регистрация )
Перекодировка в скрипте Lua 5.14 из CP-1251 в UTF-8, Источник в CP-1251 ( http://bash.org.ru/random ), получатель UTF-8 |
12.12.2011, 1:43
Сообщение
#1
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 7 Регистрация: 9.2.2009 Пользователь №: 2 164 Спасибо сказали: 0 раз |
Имеем сервер случайных баш-приколов
К сожалению, имеем его только в кодировке CP-1251. Имеем мой тестовый хаб на PtokaX 0.4.2.0 на GNU/Linux openSUSE 12.1 x86_64, работающий в кодировке UTF-8. Имеем lua-script AnekBot v1.0 beta by alex82 (Если знаете новее или лучше ткните мне в него ссылкой ) Имеем парсирующую функцию Код tParse[funcnumber] = function(data) local _,_,result = string.find(data,"<div class=\"text\">(.-)</div>") return result or "На http://bash.org.ru/random изменилась структура web-документа!" end Нужно перед return, перекодировать result в UTF-8. 1 Как это сделать? Я слышал что это как то делается с помощью таблицы преобразования, но как именно я не понял. 2 Возможно ли это сделать какой-нибудь lua-библиотекой? 3 Возможно ли это сделать обращаясь к средствам Linux?
Причина редактирования: Для рекламы своих хабов есть специальная тема. | Saymon21
|
|
|
12.12.2011, 2:05
Сообщение
#2
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
http://mydc.ru/topic334.html может и не в тему, но мало ли
|
|
|
12.12.2011, 2:09
Сообщение
#3
|
|
Site Reliability Engineer Группа: Модераторы Сообщений: 1 772 Регистрация: 27.6.2009 Из: Чувашия, г. Чебоксары Пользователь №: 3 719 Спасибо сказали: 479 раз |
берём, то, что дал Артём и примерно так
Код result = AnsiToUtf8(result) return result -- дальше сам. Цитата 3 Возможно ли это сделать обращаясь к средствам Linux? iconv |
|
|
12.12.2011, 2:46
Сообщение
#4
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 7 Регистрация: 9.2.2009 Пользователь №: 2 164 Спасибо сказали: 0 раз |
Раскрывающийся текст Код tParse[funcnumber] = function(data) local cp1251= { [128]='\208\130',[129]='\208\131',[130]='\226\128\154',[131]='\209\147',[132]='\226\128\158',[133]='\226\128\166', [134]='\226\128\160',[135]='\226\128\161',[136]='\226\130\172',[137]='\226\128\176',[138]='\208\137',[139]='\226\128\185', [140]='\208\138',[141]='\208\140',[142]='\208\139',[143]='\208\143',[144]='\209\146',[145]='\226\128\152', [146]='\226\128\153',[147]='\226\128\156',[148]='\226\128\157',[149]='\226\128\162',[150]='\226\128\147',[151]='\226\128\148', [152]='\194\152',[153]='\226\132\162',[154]='\209\153',[155]='\226\128\186',[156]='\209\154',[157]='\209\156', [158]='\209\155',[159]='\209\159',[160]='\194\160',[161]='\209\142',[162]='\209\158',[163]='\208\136', [164]='\194\164',[165]='\210\144',[166]='\194\166',[167]='\194\167',[168]='\208\129',[169]='\194\169', [170]='\208\132',[171]='\194\171',[172]='\194\172',[173]='\194\173',[174]='\194\174',[175]='\208\135', [176]='\194\176',[177]='\194\177',[178]='\208\134',[179]='\209\150',[180]='\210\145',[181]='\194\181', [182]='\194\182',[183]='\194\183',[184]='\209\145',[185]='\226\132\150',[186]='\209\148',[187]='\194\187', [188]='\209\152',[189]='\208\133',[190]='\209\149',[191]='\209\151' } local nmdc = { [36] = '$', [124] = '|' } cp1251_utf8 = function(s) local r, b = '' for i = 1, s and s:len() or 0 do b = s:byte(i) if b < 128 then r = r..string.char(b) else if b > 239 then r = r..'\209'..string.char(b-112) elseif b > 191 then r = r..'\208'..string.char(b-48) elseif cp1251[b] then r = r..cp1251[b] else r = r..'_' end end end return r end local _,_,result = string.find(data,"<div class=\"text\">(.-)</div>") return cp1251_utf8(result) or "На http://bash.org.ru/random изменилась структура web-документа!" end Спасибо помогло! )
Причина редактирования: Под спойлер код. | Saymon21
|
|
|
Похожие темы
|
Сейчас: 27.11.2024, 4:47 |