Skip to content Skip to sidebar Skip to footer

Mengatasi Error: Could not encode content to ISO-8859-1 Generate QRCode di Laravel

Beberapa hari yang lalu, saya mendapat kabar dari pelanggan bahwa ada error di salah satu website yang saya buat dan kembangkan.

Errornya kira-kira seperti ini:


Could not encode content to ISO-8859-1 dan ada exception yang menyatakan masalahnya di library BaqonQRCode\Exception\WriterException.

Masalah:

Setelah saya cari masalahnya di internet, kemungkinan besar masalah ini terjadi karena device yang digunakan pengguna, yaitu iPhone dan browsernya safari, tidak bisa membaca karakter default dari QRCode ini: ISO-8859-1.

ISO-8859-1 adalah karakter encoding yang mana pada umumnya digunakan untuk bahasa di Western European atau Eropa Barat.

Saya tidak tahu pasti seri iPhone apa yang digunakan oleh pengguna, sepertinya dibawah 6/7. Dan juga versi safari browsernya saya juga tidak tahu pasti.

Solusi:

Oke, jadi saya memutuskan untuk menggunakan karakter UTF-8 sebagai pengganti ISO-8859-1. Karakter UTF-8 lebih kompatibel dan mendukung untuk berbagai device, termasuk iPhone dan Android.

Ohh, iya sebelumnya saya menggunakan Laravel 9 dan library QR Codenya Simple QRCode dari Simple Software.

Begini codingan saya untuk generate QR Code sebelum convert ke UTF-8 di template blade.php
<div class="visible-print text-center p-5">
    {!! QrCode::size(300)->errorCorrection('H')->generate('url_or_whatever_you_want_to_show_to_the_qrcode') !!}
</div>

Untuk mengubah karakter encoding di QR Codenya menjadi UTF-8, bisa dengan perintah encoding. Sehingga menjadi seperti ini.
<div class="visible-print text-center p-5">
    {!! QrCode::size(300)->errorCorrection('H')->encoding('UTF-8')->generate('url_or_whatever_you_want_to_show_to_the_qrcode') !!}
</div>

Seharusnya dengan mengubah karakter encodingnya menjadi UTF-8, error tersebut tidak akan muncul lagi.

Walaupun sebenarnya belum saya test di perangkat iPhone karena memang belum ada iPhone yang mau ditest. Mungkin nanti akan saya coba.
Rinaldi Pratama Putra
Rinaldi Pratama Putra Reality is a lovely place, but I wouldn't wanna live there.