Автор: 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 отвечает за ту кодировку, в которую необходимо перевести.
Список доступных библиотеке кодировок:
- Европейские кодировки: ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866}, CP{437,737,775,852,853,855,857,858,860,861,863,865,869,1125}, Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh
- Юникодные кодировки: UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, UTF-32LE, UTF-7, UCS-2, UCS-2BE, UCS-2LE, UCS-4, UCS-4BE, UCS-4LE, C99, JAVA, UCS-2-INTERNAL, UCS-4-INTERNAL
- Semitic кодировки: ISO-8859-{6,8}, CP{1255,1256}, CP862, CP864, Mac{Hebrew,Arabic}
- Специфически платформенные кодировки: HP-ROMAN8, NEXTSTEP
- Армянские кодировки: ARMSCII-8
- Вьетнамские кодировки: VISCII, TCVN, CP1258
- Грузинские кодировки: Georgian-Academy, Georgian-PS
- Китайские кодировки: EUC-CN, HZ, GBK, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, ISO-2022-CN, ISO-2022-CN-EXT
- Корейские кодировки: EUC-KR, CP949, ISO-2022-KR, JOHAB
- Лаосские кодировки: MuleLao-1, CP1133
- Таджикские кодировки: KOI8-T
- Тайские кодировки: TIS-620, CP874, MacThai
- Японские кодировки: EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-1, ISO-2022-JP-2
Пример перевода текста из 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 килобайт )
: 6P.S. Немного модифицировал библиотеку, добавив функцию convert в таблицу string, и теперь можно использовать функцию convert как обычный строковый метод (только нужно не забыть подключить библиотеку ).
Автор: Nickolya 21.3.2010, 15:06
У меня на вин 7 и последних версиях хаба и плагина луа не подключилась Ошибка вот такая:
В файле ошибок скриптов:
Цитата
[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
А как насчет для Линукс ?