Ferramenta autoral
Acentos quebrados.Diagnóstico organizado.
Uma ferramenta própria para investigar problemas de codificação em projetos.
Acha e aponta cada acento quebrado do projeto.
- Tauri 2
- Rust
- React 18
- TypeScript
Ferramenta autoralVarredurado projetoOcorrências
com contextoRelatórios
de diagnóstico

Acentos quebrados.Diagnóstico organizado.
Uma ferramenta própria para investigar problemas de codificação em projetos.
- Tauri 2
- Rust
- React 18
- TypeScript
Acha e aponta cada acento quebrado do projeto.
- Tauri 2
- Rust
- React 18
- TypeScript
O problema
VEÍCULOS virou VE?CULOS.
Um acento quebrado quase nunca é erro de digitação: é o arquivo guardado num padrão de letras e lido em outro. Por fora, a palavra só fica estranha; por dentro, os bytes contam o que aconteceu. Escolha uma situação e toque ou passe o mouse nas letras.
Quatro situações
LetraBytes no arquivo
O que o programa diz
- OKUTF-8 válido. O Í ocupa dois bytes (C3 8D), como deve.
É o padrão de hoje: cada letra com acento vira dois bytes, e qualquer programa lê igual.
Os bytes são os de verdade de cada padrão; as mensagens seguem as checagens do núcleo em Rust (analyze_file).

Do arquivo ao contexto. Veja onde investigar.
Ocorrências por arquivo, linha e coluna para apoiar a manutenção.
Arquivo, linha e colunaContexto da ocorrênciaFiltros por gravidadeUm projeto tem centenas de arquivos, e o acento quebrado pode estar em qualquer um. O programa lê todos e entrega a lista: quais estão bem, quais pedem atenção e, em cada um, a linha, a coluna e o trecho em volta, para ir direto ao lugar.
- 12 <label>Ve�culo</label>FFFD_REPLACEMENTLinha 12 · coluna 18
- 27 placeholder="Endere�o"FFFD_REPLACEMENTLinha 27 · coluna 23
O relatório sai em três formatos
# HUNT Encoding Checker - Report **Scan Date:** 2026-10-16 15:42:07 **Path:** D:/Projetos/loja-exemplo **Total:** 6 files | **Critical:** 3 | **Warning:** 1 | **OK:** 1 --- ## src/pages/cadastro.tsx [CRITICAL] - Encoding: windows-1252 - BOM: No - Line ending: CRLF | Line | Type | Context | |------|------|---------| | 12 | FFFD_REPLACEMENT | <label>Ve�culo</label> | | 27 | FFFD_REPLACEMENT | placeholder="Endere�o" |
Os arquivos são de exemplo. Os tipos de ocorrência, as gravidades e o formato do relatório são os do código (analyze_file e export_report_md); a mensagem do relatório sai em inglês, como no programa.
A rede de segurança
Antes de mexer, uma cópia.
Corrigir arquivo de projeto dá medo: e se piorar? Por isso o programa exige uma pasta de cópias. Antes de qualquer correção, ele copia os arquivos para uma pasta com data e hora e anota num manifesto de onde veio cada um. Se não gostar, um clique devolve tudo como estava.
Escolha as correções
Cópias guardadas
_manifest.json
{ "id": "snapshot-20261014-092611", "timestamp": "2026-10-14 09:26:11", "files": [ { "original_path": "D:/Projetos/loja-exemplo/src/pages/cadastro.tsx", "backup_name": "D__Projetos_loja-exemplo_src_pages_cadastro.tsx" }, { "original_path": "D:/Projetos/loja-exemplo/README.md", "backup_name": "D__Projetos_loja-exemplo_README.md" } ] }
Os nomes da pasta e do manifesto são os que o programa grava (create_snapshot); as correções são as de apply_corrections. A pasta de cópias é obrigatória para corrigir.

Ferramenta desktop
Uma ferramenta própria. Uma rotina mais leve.
Desenvolvimento autoral para apoiar a qualidade dos projetos.
RelatóriosComparaçãode encodingCorreções
assistidas
Depois de corrigir, a pergunta é: deu certo? O programa põe a pasta original e a corrigida lado a lado e aponta, arquivo por arquivo, o que mudou no padrão de letras, onde o losango sumiu e o que só existe de um lado.
5 diferenças em 7 arquivos
loja-exemplo/Pasta corrigidaloja-exemplo-corrigida/src/pages/cadastro.tsxwindows-1252�Padrão mudousrc/pages/cadastro.tsxUTF-8docs/manual.txtUTF-8�Losango sumiudocs/manual.txtUTF-8README.mdUTF-8 BOMPadrão mudouREADME.mdUTF-8src/styles/tema.cssASCIIIgualsrc/styles/tema.cssASCIIsrc/utils/log.tsUTF-8Igualsrc/utils/log.tsUTF-8notas-antigas.txtUTF-8Só na original——Só na corrigidadocs/changelog.mdUTF-8A comparação olha o padrão de letras detectado, o caractere de substituição e o tamanho de cada arquivo (compare_directories); não confere o texto linha a linha. As pastas são de exemplo.
O que ele lê
Lê o que é texto, pula o que é peso.
Uma pasta de projeto carrega muita coisa que ninguém escreveu à mão: bibliotecas baixadas, versões montadas, histórico. O programa passa a pasta numa peneira: lê os tipos de arquivo de texto e de código e pula as pastas pesadas que só atrasariam a varredura.
Uma pasta de projetoPulados
.tsnode_modules.tsx.next.js.git.jsxdist.htmlbuild.css.cache.md.vercel.json.turbo.sqlcoverage.prisma__pycache__.envtarget.txt.svn.yml.hg.yaml
Lidos
- 14tipos de arquivo lidos
- 13pastas puladas pelo nome
- 12funções do núcleo em Rust
Pastas com nome começando por { também ficam de fora. Antes de ler, o programa conta quantos arquivos vai olhar.
As listas são as do núcleo (SCAN_EXTENSIONS e EXCLUDED_DIRS em main.rs); as funções, as do generate_handler.
As tecnologias
Do que é feito, peça por peça
Um programa de computador que lê projetos byte a byte: a tela é React dentro do Tauri 2, e o núcleo em Rust percorre as pastas, estima o padrão de letras, aponta cada ocorrência e guarda as cópias. Escolha uma peça para ver o que ela faz aqui e em que arquivo está.
14tecnologias, em 3 camadas
Tela
Janela e núcleo
Leitura dos arquivos
Próximo projeto44 / 51

Ferramentas para criação e desenvolvimentoMotor DesignPainel de computador que abre sites de referência num navegador de verdade e mede tecnologias, cores, letras e o movimento, com duração e curva medidas, não chutadasReact 19.2TypeScript 5.9Vite 6.4lucide-react
← AnteriorDevHub GitHub

