9 minutos atrás, dalvorsn disse:unicode2latin1(str)
A função recebe como parametro uma string 'str', e procura nela ocorrencias de unicode/utf8 dos principais acentos usados e converte para latin1/iso-8859-1.
Não é feita a conversão de todos os caracteres possíveis, pois não é bem o intuito da função, mas caso queira adicionar basta incluir no map de caracteres. Os demais caracteres estão disponiveis nesta tabela.
function unicode2latin1(str) local map = { -- ÁáÀàÂâÃã {utf = {0xc3, 0x81}, latin = 0xc1}, -- Á {utf = {0xc3, 0xa1}, latin = 0xe1}, -- á {utf = {0xc3, 0x80}, latin = 0xc0}, -- À {utf = {0xc3, 0xa0}, latin = 0xe0}, -- à {utf = {0xc3, 0x82}, latin = 0xc2}, --  {utf = {0xc3, 0xa2}, latin = 0xe2}, -- â {utf = {0xc3, 0x83}, latin = 0xc3}, -- à {utf = {0xc3, 0xa3}, latin = 0xe3}, -- ã -- ÉéÈèÊê {utf = {0xc3, 0x89}, latin = 0xc9}, -- É {utf = {0xc3, 0xa9}, latin = 0xe9}, -- é {utf = {0xc3, 0x88}, latin = 0xc8}, -- È {utf = {0xc3, 0xa8}, latin = 0xe8}, -- è {utf = {0xc3, 0x8a}, latin = 0xca}, -- Ê {utf = {0xc3, 0xaa}, latin = 0xea}, -- ê -- ÍíÌìÎî {utf = {0xc3, 0x8d}, latin = 0xcc}, -- Í {utf = {0xc3, 0xad}, latin = 0xec}, -- í {utf = {0xc3, 0x8c}, latin = 0xcd}, -- Ì {utf = {0xc3, 0xac}, latin = 0xed}, -- ì {utf = {0xc3, 0x8e}, latin = 0xce}, -- Î {utf = {0xc3, 0xae}, latin = 0xee}, -- î -- ÓóÒòÔôÕõ {utf = {0xc3, 0x93}, latin = 0xd3}, -- Ó {utf = {0xc3, 0xb3}, latin = 0xf3}, -- ó {utf = {0xc3, 0x92}, latin = 0xd2}, -- Ò {utf = {0xc3, 0xb2}, latin = 0xf2}, -- ò {utf = {0xc3, 0x94}, latin = 0xd4}, -- Ô {utf = {0xc3, 0xb4}, latin = 0xf4}, -- ô {utf = {0xc3, 0x95}, latin = 0xd5}, -- Õ {utf = {0xc3, 0xb5}, latin = 0xf5}, -- õ -- ÚúÙùÛû {utf = {0xc3, 0x9a}, latin = 0xda}, -- Ú {utf = {0xc3, 0xba}, latin = 0xfa}, -- ú {utf = {0xc3, 0x99}, latin = 0xd9}, -- Ù {utf = {0xc3, 0xb9}, latin = 0xf9}, -- ù {utf = {0xc3, 0x9b}, latin = 0xdb}, -- Û {utf = {0xc3, 0xbb}, latin = 0xfb}, -- û -- Çç {utf = {0xc3, 0x87}, latin = 0xc7}, -- Ç {utf = {0xc3, 0xa7}, latin = 0xe7} -- ç } if type(str) == "string" then for i = 1, #map do str = str:gsub(string.char(unpack(map[i].utf)), string.char(map[i].latin)) end end return strend
Pra que serve ?









info
Grupo: Conde
Registrado: 21/12/11
Posts: 750
Reputação: +268
Gênero: Masculino
unicode2latin1(str)
A função recebe como parametro uma string 'str', e procura nela ocorrencias de unicode/utf8 dos principais acentos usados e converte para latin1/iso-8859-1.
Não é feita a conversão de todos os caracteres possíveis, pois não é bem o intuito da função, mas caso queira adicionar basta incluir no map de caracteres. Os demais caracteres estão disponiveis nesta tabela.