Tôi đang cố gắng giải mã dấu gạch ngang được mã hóa từ thực thể số thành chuỗi, nhưng có vẻ như tôi không thể tìm thấy một hàm có thể làm điều này đúng cách.Cách giải mã các thực thể HTML số trong PHP
Điều tốt nhất tôi thấy là mb_decode_numericentity(), tuy nhiên, vì một số lý do, nó không giải mã được dấu gạch ngang dài và một số ký tự đặc biệt khác.
$str = '–';
$str = mb_decode_numericentity($str, array(0xFF, 0x2FFFF, 0, 0xFFFF), 'ISO-8859-1');
Điều này sẽ trả về "?".
Bất kỳ ai biết cách giải quyết vấn đề này?
Dấu gạch ngang dài có trong ISO-8859-1 không? –
@ColShrapnel: Thật vậy là không. Nó có mặt trong Windows cp1252, tương tự, nhưng không phải là ISO-8859-1. Tốt hơn: sử dụng UTF-8. – bobince
Chắc chắn, không có dấu gạch ngang dài trong ISO/IEC 8859-1 (Latin-1). Trên thực tế, đây là một ký tự unicode, và sử dụng UTF-8 đã giúp. Đó là lỗi của tôi mà tôi quên thay đổi mã hóa trong trình duyệt. Cảm ơn tất cả mọi người! – Yuriy