Collections no PHP e seu uso no Laravel
Ao desenvolver aplicações modernas com PHP, uma das tarefas mais comuns é manipular arrays — filtrando, transformando ou agrupando dados.... Leia mais
Desenvolvedor de Software
Quando lidamos com arquivos de texto, a codificação de caracteres é um aspecto fundamental para garantir que os textos sejam exibidos corretamente. No entanto, em muitos casos, especialmente em sistemas legados, pode ser necessário converter arquivos de uma codificação moderna, como UTF-8, para ANSI (ISO-8859-1). Este artigo explica como fazer isso usando PHP, com exemplos práticos.
No caso de arquivos sem caracteres acentuados ou especiais, como “Este e um texto de exemplo”, ambos os formatos podem ser exibidos de forma idêntica em editores simples como o Bloco de Notas.
Se você criar um arquivo de texto sem caracteres acentuados, como:
$content = "Este e um texto de exemplo. Sem caracteres especiais!";
Ele será salvo corretamente em UTF-8, mas parecerá “igual” ao ser visualizado como ASCII, porque os caracteres usados pertencem à faixa básica compatível entre UTF-8 e ASCII.
Porém, ao lidar com arquivos que precisam estar especificamente em ANSI, a conversão é necessária.
O seguinte script gera um arquivo .txt em UTF-8 e o converte para ANSI:
<?php
function generateUtf8File($filePath, $content)
{
// Gera um arquivo UTF-8
file_put_contents($filePath, $content);
echo "Arquivo UTF-8 gerado em: $filePath\n";
}
function convertToAnsi($inputFile, $outputFile)
{
// Verifica se o arquivo de entrada existe
if (!file_exists($inputFile)) {
throw new Exception("O arquivo de entrada não foi encontrado: $inputFile");
}
// Lê o conteúdo do arquivo
$content = file_get_contents($inputFile);
// Converte o conteúdo para ANSI (ISO-8859-1)
$ansiContent = iconv("UTF-8", "ISO-8859-1//IGNORE", $content);
// Grava o conteúdo convertido no arquivo de saída
file_put_contents($outputFile, $ansiContent);
echo "Arquivo convertido para ANSI e salvo em: $outputFile\n";
}
// Caminhos dos arquivos
$utf8File = 'arquivo_utf8.txt';
$ansiFile = 'arquivo_ansi.txt';
// Conteúdo do arquivo UTF-8
$content = "Este é um texto de exemplo. Sem caracteres especiais!";
// Gera o arquivo UTF-8
generateUtf8File($utf8File, $content);
// Converte para ANSI
try {
convertToAnsi($utf8File, $ansiFile);
} catch (Exception $e) {
echo "Erro: " . $e->getMessage() . "\n";
generateUtf8File:
.txt com codificação UTF-8.convertToAnsi:
iconv para converter o conteúdo de UTF-8 para ANSI (ISO-8859-1).
Arquivos sem caracteres especiais são exibidos corretamente porque:
Ao desenvolver aplicações modernas com PHP, uma das tarefas mais comuns é manipular arrays — filtrando, transformando ou agrupando dados.... Leia mais
O Design Pattern Facade é uma solução elegante para simplificar a interface de um subsistema complexo, tornando-o mais fácil de... Leia mais
Então resolvi tirar um tempo para conhecer outras linguagens de programação e no momento resolvi iniciar com a GO pois... Leia mais
Quando lidamos com arquivos de texto, a codificação de caracteres é um aspecto fundamental para garantir que os textos sejam... Leia mais