Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Библиотеки и модули для RusHub'а _ iconv

Автор: Setuper 20.3.2010, 12:42

Название: iconv
Версия: 6
Хаб: RusHub
Автор библиотеки: Alexandre Erwin Ittner
Описание: Библиотека для преобразования кодировок.
Использование: Содержимое архива iconv.rar распаковываем в папку libs (т.е. в папке libs должна находится папка iconv с тремя файлами). В скриптах библиотека подключается так: require"iconv".
ВНИМАНИЕ! (для win32, win64 это не касается) В случае отсутствия в вашей системе (в папке system32) библиотеки iconv.dll, нужно из данного архива либо скопировать эту библиотеку в system32, либо положить эту библиотеку рядом с исполняемым файлом rushub.exe !

После подключения библиотеки в глобальном окружении будет доступна функция string.convert(sText, sFrom, sTo)
Возвращаемые значения: Функция возвращает преобразованный текст. В случае возникновения ошибки, функция возвращает описание ошибки во втором аргументе. Если встретилась неправильная последовательность символов, то функция вернёт переведённый фрагмент (до этого места) и сообщение об ошибке ("ERROR: Failed to convert.").
При неправильном задании типа кодировки скрипт вылетит с ошибкой: "Failed to create a converter object."
Аргументы: Первый параметр - непосредственно сам текст, который нужно преобразовать, второй параметр sFrom отвечает за текущую кодировку текста, третий параметр sTo отвечает за ту кодировку, в которую необходимо перевести.

Список доступных библиотеке кодировок:




Пример перевода текста из cp1251(windows-1251) в utf-8:
Код
require"iconv"
local sText = "Текст, который нужно преобразовать в utf-8."
local sStr, sErr = sText:convert("cp1251", "utf-8")
Core.SendToAll(sStr)


Библиотека win32:  iconv.rar ( 511.99 килобайт ) : 131

Библиотека win64:  iconv_win64.rar ( 511.4 килобайт ) : 21

Проект для сборки на vs2008:  iconv_6_src_vs9.zip ( 26.5 килобайт ) : 6


P.S. Немного модифицировал библиотеку, добавив функцию convert в таблицу string, и теперь можно использовать функцию convert как обычный строковый метод (только нужно не забыть подключить библиотеку big_smile.gif ).

Автор: Nickolya 21.3.2010, 15:06

У меня на вин 7 и последних версиях хаба и плагина луа не подключилась nothing_to_say.gif Ошибка вот такая:



В файле ошибок скриптов:
Цитата
[Sun Mar 21 00:09:25 2010] error loading module 'iconv.libiconv' from file 'C:\Server\RusHub\libs\iconv\libiconv.dll':
Не найден указанный модуль.

В чат у меня вот такая функция выводила ошибки:
Код
function OnError(sErrorMsg)
    Core.SendToAll("*** Произошла ошибка в скрипте: "..sErrorMsg)
    return true
end

и после подключения библиотеки я увидел в чате русский текст из скрипта в утф, хотя этого и не делал:
Цитата
*** Произошла ошибка в скрипте: error loading module 'iconv.libiconv' from file 'C:\Server\RusHub\libs\iconv\libiconv.dll':
Не найден указанный модуль.


И даже получилось получить креш, хотя воспроизвести его не удалось, в файле лога нет ничего, ошибка вот такая:
Код
Сигнатура проблемы:
  Имя события проблемы:    APPCRASH
  Имя приложения:    rushub.exe
  Версия приложения:    0.0.0.0
  Отметка времени приложения:    4b8fc07f
  Имя модуля с ошибкой:    ntdll.dll
  Версия модуля с ошибкой:    6.1.7600.16385
  Отметка времени модуля с ошибкой:    4a5bdadb
  Код исключения:    c0000005
  Смещение исключения:    00055b17
  Версия ОС:    6.1.7600.2.0.0.256.1
  Код языка:    1049
  Дополнительные сведения 1:    0a9e
  Дополнительные сведения 2:    0a9e372d3b4ad19135b953a78882e789
  Дополнительные сведения 3:    0a9e
  Дополнительные сведения 4:    0a9e372d3b4ad19135b953a78882e789

Ознакомьтесь с заявлением о конфиденциальности в Интернете:
  http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419

Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
  C:\Windows\system32\ru-RU\erofflps.txt


Папку с 3 файлами положил как и написано в папку libs, пробовал и некоторые другие извраты, все тоже самое...

Автор: Setuper 21.3.2010, 16:17

Оказывается библиотеку iconv.dll нужно поместить в папку с выполняемым экзешником rushub.exe, или в папку system32, в противном случае данная библиотека не сможет подключиться к программе статически.

У меня эта библиотека уже была в папке system32, поэтому у меня никаких проблем не возникало. iconv.dll - это очень распространённая библиотека, которая используется во многих программах, например, в том же самом апаче в php.

Что касается падения, то не представляю из-за чего оно могло быть.

Автор: CrazyKiller 4.8.2011, 12:52

А как насчет для Линукс ?