Skip to content

Commit

Permalink
🌐 Corrigindo erros de encoding
Browse files Browse the repository at this point in the history
- Baseada na documentação do método `mb_convert_encoding` https://www.php.net/manual/en/function.mb-convert-encoding.php se o terceiro parametro for omitido será utilizada `mbstring.internal_encoding setting` e no meu caso não posso definir ela para UTF-8 pois meu sistema está todo encodificado para ISO-8859-1.
Nesse caso passei um array com dois prováveis encodings para que ele possa fazer a conversão corretamente.
  • Loading branch information
ricardoapaes committed Nov 16, 2023
1 parent a305570 commit ed7aa61
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions src/Legacy/Pdf.php
Original file line number Diff line number Diff line change
Expand Up @@ -893,7 +893,7 @@ public function textBox(
//remover espaços desnecessários
$text = trim($text);
//converter o charset para o fpdf
$text = mb_convert_encoding($text, 'ISO-8859-1');
$text = $this->convertToIso($text);
//decodifica os caracteres html no xml
$text = html_entity_decode($text);
} else {
Expand Down Expand Up @@ -1034,7 +1034,7 @@ public function textBox90(
//remover espaços desnecessários
$text = trim($text);
//converter o charset para o fpdf
$text = mb_convert_encoding($text, 'ISO-8859-1');
$text = $this->convertToIso($text);
//decodifica os caracteres html no xml
$text = html_entity_decode($text);
} else {
Expand Down Expand Up @@ -1117,4 +1117,15 @@ public function textBox90(
$this->rotate(0, $x, $y);
return ($y1 - $y) - $incY;
}

/**
* Converte os caracteres para ISO-88591.
*
* @param string $text
* @return string
*/
private function convertToIso($text) {
return mb_convert_encoding($text, 'ISO-8859-1', ['UTF-8', 'windows-1252']);
}

}

0 comments on commit ed7aa61

Please sign in to comment.