#!Lua-5.0.exe -- Win2Mac.lua -- Convert Win Ansi chars to Mac (OS9) chars and back. -- by Philippe Lhoste http://Phi.Lho.free.fr -- v. 1.0 -- 2004/02/25 -- Creation local win2macChars = { ['\r'] = '\r', -- EOL ['\n'] = '\n', -- EOL [''] = '', -- à [''] = '', -- â [''] = '', -- æ [''] = '', -- ç [''] = '', -- é [''] = '', -- è [''] = '', -- ê [''] = '', -- ë [''] = '', -- î [''] = '', -- ï [''] = '', -- ô [''] = '', -- ö [''] = '', -- œ [''] = '', -- ù [''] = '', -- û [''] = '', -- ÿ [''] = '', -- À [''] = '', --  [''] = '', -- Æ [''] = '', -- Ç [''] = '', -- É [''] = '', -- È [''] = '', -- Ê [''] = '', -- Ë [''] = '', -- Î [''] = '', -- Ï [''] = '', -- Ô [''] = '', -- Ö [''] = '', -- Œ [''] = '', -- Ù [''] = '', -- Û [''] = '', -- Ÿ [''] = '', -- « [''] = '', -- » [''] = '', -- © [''] = '', -- ® } -- Invert table for reverse conversion local mac2winChars = {} for k, v in pairs(win2macChars) do mac2winChars[v] = k end win2macChars['\r'] = nil win2macChars['\n'] = '' mac2winChars['\r'] = '\r\n' mac2winChars['\n'] = nil local toConvertWin2Mac = "([" -- Add all characters to encode to the pattern string for charWin, charMac in pairs(win2macChars) do toConvertWin2Mac = toConvertWin2Mac .. charWin end toConvertWin2Mac = toConvertWin2Mac .. "])" local toConvertMac2Win = "([" -- Add all characters to encode to the pattern string for charWin, charMac in pairs(mac2winChars) do toConvertMac2Win = toConvertMac2Win .. charWin end toConvertMac2Win = toConvertMac2Win .. "])" function EncodeWin2Mac(toEncode) if toEncode == nil or type(toEncode) ~= "string" then return '' end return (string.gsub(toEncode, toConvertWin2Mac, function (char) return win2macChars[char] or char end)) end function EncodeMac2Win(toEncode) if toEncode == nil or type(toEncode) ~= "string" then return '' end return (string.gsub(toEncode, toConvertMac2Win, function (char) return mac2winChars[char] or char end)) end