diff --git a/index.html b/index.html new file mode 100644 index 0000000..95c0c5d --- /dev/null +++ b/index.html @@ -0,0 +1,64 @@ + + + + + + + Arrumando texto em UTF-8 de uma API + + + +
+

Recodificando texto em UTF-8 a partir de uma API

+ + + + +
+
+
+
+
+ +
+
+
+

+ Para aqueles que frequentemente lidam com textos obtidos por APIs e enfrentam o desafio de acentos e caracteres especiais truncados. +

+

+ Nosso pequeno programa foi desenvolvido para resolver esse problema, garantindo que você possa acessar facilmente os + textos em seu formato original UTF-8. +

+
+
+

+ Como usar: +

+
+

+ Cole a URL do texto na caixa de entrada fornecida e clique no botão "Obter da URL". +

+ +

+ Nosso aplicativo cuidará do resto, arumando os acentos e apresentando-o em uma nova aba do navegador, pronto para visualização e download. +

+ +

+ Nunca mais se preocupe com acentos truncados ou codificados incorretamente! +

+ +

+ Experimente agora e elimine os problemas de acentos truncado para sempre! +

+
+
+
+ +

+ + + + + \ No newline at end of file diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..6bd5af8 --- /dev/null +++ b/readme.md @@ -0,0 +1,11 @@ +## Para aqueles que frequentemente lidam com textos obtidos por APIs e enfrentam o desafio de acentos e caracteres especiais truncados.

Nosso pequeno programa foi desenvolvido para resolver esse problema, garantindo que você possa acessar facilmente os textos em seu formato original UTF-8. + +### Como usar: +- Cole a URL do texto na caixa de entrada fornecida e clique no botão "Obter da URL". + +- Nosso aplicativo cuidará do resto, arumando os acentos e apresentando-o em uma nova aba do navegador, pronto para visualização e download. + +- Nunca mais se preocupe com acentos truncados ou codificados incorretamente! + +- Experimente agora e elimine os problemas de acentos truncado para sempre! + \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..e7922eb --- /dev/null +++ b/script.js @@ -0,0 +1,60 @@ +function decodeFromUrl() { + const url = document.getElementById('urlInput').value; + + if (!url) { + displayError('Por favor, insira uma URL'); + return; + } + + fetch(url) + .then(response => { + if (!response.ok) { + throw new Error('Erro ao obter o texto da URL'); + } + return response.arrayBuffer(); + }) + .then(arrayBuffer => { + const decoder = new TextDecoder('utf-8'); + const texto_utf8 = decoder.decode(arrayBuffer); + displayText(texto_utf8); + }) + .catch(error => { + displayError(error.message); + }); +} + +function displayText(texto_utf8) { + clearError(); + // Abrir uma nova aba do navegador para exibir o resultado + const newWindow = window.open(); + newWindow.document.write('
' + texto_utf8 + '
'); + newWindow.document.head.innerHTML = 'Arrumado!'; + newWindow.document.body.style.backgroundColor = '#282828'; + newWindow.document.body.style.color = 'white'; + + // Adicionar um botão para fazer o download do arquivo + const downloadButton = newWindow.document.createElement('button'); + downloadButton.textContent = 'Baixar arquivo'; + downloadButton.onclick = function () { + const blob = new Blob([texto_utf8], { type: 'text/plain;charset=utf-8' }); + const fileName = 'resultado.txt'; + const downloadLink = newWindow.document.createElement('a'); + downloadLink.href = URL.createObjectURL(blob); + downloadLink.download = fileName; + newWindow.document.body.appendChild(downloadLink); + downloadLink.click(); + URL.revokeObjectURL(downloadLink.href); + newWindow.document.body.removeChild(downloadLink); + }; + newWindow.document.body.insertBefore(downloadButton, newWindow.document.body.firstChild); +} + +function displayError(errorMessage) { + const errorMessages = document.getElementById('errorMessages'); + errorMessages.textContent = errorMessage; +} + +function clearError() { + const errorMessages = document.getElementById('errorMessages'); + errorMessages.textContent = ''; +}