tôi bước vào sau trong giao diện điều khiển của Chrome:Javascript decodeURI (Component) bị thay đổi uri ngoại lệ
decodeURIComponent('a%AFc');
Thay vì dẫn đến a0xAFc
, nó gây ra một ngoại lệ URIError (bị thay đổi uri).
Tôi đã nghe một số lý do tại sao điều này có thể xảy ra, nhưng điều tôi không hiểu là lý do tại sao?
Đặc biệt, hàm decodeURIComponent()
có nghĩa vụ giải mã dữ liệu, không xác minh URI.
tôi đã làm cho nó lên sau khi tôi đã cố gắng giải mã một tải trọng của văn bản được mã hóa, thất bại và nhận thấy nó sẽ nghẹt thở trên mà nhân vật cụ thể. Có lẽ 'unescape' là thứ tôi cần. – Christian
@ChristianSciberras 'encodeURIComponent()' thường là một lựa chọn tốt hơn vì nó hoạt động với UTF-8. Tuy nhiên, bản thân '0xAF' không phải là chuỗi ký tự được mã hóa UTF-8 hợp lệ. Đây là lý do tại sao mã của bạn không hoạt động. Tôi hy vọng nó rõ ràng hơn bây giờ. – duri
Vậy nếu tôi cần xử lý các đầu vào được mã hóa theo phần trăm ASCII/iso-8859-1 thì sao? 'unescape' không được chấp nhận và cũng không có' unescapeURI' – felixfbecker