The issue occurs because FileReader.readAsArrayBuffer() provides raw binary data, and when interpreted with the wrong encoding, it misreads the £ symbol (0xC2 0xA3 in UTF-8) as £. To fix this, use TextDecoder with UTF-8 encoding