-- Convert accented characters from a given string and return HTML entities in the output string.
-- by Philippe Lhoste <PhiLho(a)GMX.net> http://Phi.Lho.free.fr
-- v. 2.0 -- 2003/06/10 -- Better algorithm, using regular expression
-- v. 1.0 -- 2003/04/19 -- Naive implementation
-- from http://lua-users.org/files/wiki_insecure/users/PhiLho/3EncodeEntities.lua
local entities =
{
-- ['&'] = "&",
['<'] = "<",
['>'] = ">",
-- French entities (the most common ones)
['à'] = "à",
['â'] = "â",
['é'] = "é",
['è'] = "è",
['ê'] = "ê",
['ë'] = "ë",
['î'] = "î",
['ï'] = "ï",
['ô'] = "ô",
['ö'] = "ö",
['ù'] = "ù",
['û'] = "û",
['ÿ'] = "ÿ",
['À'] = "À",
['Â'] = "Â",
['É'] = "É",
['È'] = "È",
['Ê'] = "Ê",
['Ë'] = "Ë",
['Î'] = "Î",
['Ï'] = "Ï",
['Ô'] = "Ô",
['Ö'] = "Ö",
['Ù'] = "Ù",
['Û'] = "Û",
['ç'] = "ç",
['Ç'] = "Ç",
['Ÿ'] = "Ÿ",
['«'] = "«",
['»'] = "»",
['©'] = "©",
['®'] = "®",
['æ'] = "æ",
['Æ'] = "Æ",
['Œ'] = "Œ", -- Not understood by all browsers
['œ'] = "œ", -- Not understood by all browsers
}
function EncodeEntities3(toEncode)
if toEncode == nil or type(toEncode) ~= "string" then
return ''
end
local EncodeToEntities = function (char)
local entity = entities[char]
if entity == nil then
local code = string.byte(char)
if code > 127 then
entity = string.format("&#%d;", code)
end
end
return entity or char
end
entities['&'] = "&"
-- I will replace '(.)' with '([^%c%s%w%p])'
encodedString = string.gsub(toEncode, '(.)', EncodeToEntities)
return encodedString
end
return EncodeEntities3(input)test run test run with input download show line numbers
Travelled to 12 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt
2 comment(s) hidden. show
| Recognizer | Recognition Result | Visualize | Recalc |
|---|---|---|---|
| #308 | 1915 | [visualize] |
| Snippet ID: | #35 |
| Snippet name: | Escape HTML entities |
| Eternal ID of this version: | #35/1 |
| Text MD5: | 59b10f4085073c01b1696819367af1a7 |
| Author: | stefan |
| Category: | tools |
| Type: | Lua code |
| Public (visible to everyone): | Yes |
| Archived (hidden from active list): | No |
| Created/modified: | 2013-12-13 23:00:48 |
| Source code size: | 1915 bytes / 73 lines |
| Pitched / IR pitched: | Yes / Yes |
| Views / Downloads: | 2886 / 452 |
| Referenced in: | [show references] |