myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
 
Ответить в данную темуНачать новую тему

> iconv, RusHub | Библиотека кодировок

Setuper
сообщение 20.3.2010, 12:42
Сообщение #1


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Название: 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 килобайт ) Кол-во скачиваний: 6


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


Спасибо сказали:
Go to the top of the page
+Quote Post
Nickolya
сообщение 21.3.2010, 15:06
Сообщение #2


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




У меня на вин 7 и последних версиях хаба и плагина луа не подключилась nothing_to_say.gif Ошибка вот такая:
Прикрепленный файл  iconv_error.png ( 12.51 килобайт ) Кол-во скачиваний: 273


В файле ошибок скриптов:
Цитата
[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, пробовал и некоторые другие извраты, все тоже самое...
Go to the top of the page
+Quote Post
Setuper
сообщение 21.3.2010, 16:17
Сообщение #3


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




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

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

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


Спасибо сказали:
Go to the top of the page
+Quote Post
CrazyKiller
сообщение 4.8.2011, 12:52
Сообщение #4


Продвинутый участник
****

Группа: Пользователи
Сообщений: 189
Регистрация: 20.4.2009
Пользователь №: 3 121
Спасибо сказали: 12 раз




А как насчет для Линукс ?
Go to the top of the page
+Quote Post

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Topic has attachmentsIconv
преобразование кодировок текста
0 Alexey 5 242 21.2.2015, 16:42 Посл. сообщение: Alexey
No New Posts От: iconv
От темы с ID: 3251
0 Saymon21 4 133 4.8.2011, 12:55 Посл. сообщение: Saymon21
Closed iconv
1 ZigZag 5 370 27.8.2010, 23:17 Посл. сообщение: Saymon21

 



RSS Сейчас: 3.12.2024, 6:00