mirror of
https://github.com/lunarmodules/lua-iconv.git
synced 2025-06-23 04:34:33 +02:00
*** empty log message ***
git-svn-id: file:///var/svn/lua-iconv/trunk@16 9538949d-8f27-0410-946f-ce01ef448559
This commit is contained in:
parent
c4709924a3
commit
3952102886
52
iconv.lua
Normal file
52
iconv.lua
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
|
||||||
|
-- Common locations (add new ones if needed).
|
||||||
|
local locs = {
|
||||||
|
-- Unices
|
||||||
|
"libluaiconv.so",
|
||||||
|
"./libluaiconv.so",
|
||||||
|
"/usr/lib/libluaiconv.so",
|
||||||
|
"/usr/local/lib/libluaiconv.so",
|
||||||
|
"/usr/local/lib/lua/5.0/lib/libluaiconv.so",
|
||||||
|
|
||||||
|
-- Windows
|
||||||
|
"libluaiconv.dll",
|
||||||
|
"luaiconv.dll",
|
||||||
|
".\\luaiconv.dll",
|
||||||
|
".\\libluaiconv.dll",
|
||||||
|
"c:\\lua\\lib\\libluaiconv.dll"
|
||||||
|
}
|
||||||
|
|
||||||
|
local loadiconv, fname, ndx
|
||||||
|
for ndx, fname in ipairs(locs) do
|
||||||
|
loadiconv = loadlib(fname, "luaopen_iconv")
|
||||||
|
if loadiconv then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
assert(loadiconv, "Can't load Lua-iconv")
|
||||||
|
loadiconv()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- An useful extension: Detects automatically the charset of the string
|
||||||
|
-- and returns it on the chosen one.
|
||||||
|
|
||||||
|
iconv.commoncharsets = {
|
||||||
|
"ascii", "iso-8859-1", "utf-8", "utf-16", "windows-1252"
|
||||||
|
}
|
||||||
|
|
||||||
|
iconv.autoconvert = function(tocode, str)
|
||||||
|
local _, fromcode, cd, ret, err
|
||||||
|
for _, fromcode in pairs(iconv.commoncharsets) do
|
||||||
|
cd = iconv.new(tocode, fromcode)
|
||||||
|
ret, err = cd:iconv(str)
|
||||||
|
if not err then
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user