Hướng dẫn encode utf-8 javascript - mã hóa javascript utf-8

Tôi muốn xóa tất cả các ký tự UTF-8 không hợp lệ khỏi một chuỗi trong JavaScript. Tôi đã thử với JavaScript này:

var bytelike= unescape[encodeURIComponent[characters]];
2

Có vẻ như Regex xác thực UTF-8 được mô tả ở đây [liên kết bị loại bỏ] hoàn chỉnh hơn và tôi đã điều chỉnh nó theo cùng một cách như:

var bytelike= unescape[encodeURIComponent[characters]];
3

Cả hai đoạn mã này dường như cho phép UTF-8 hợp lệ thông qua, nhưng không lọc ra bất kỳ ký tự UTF-8 xấu nào từ dữ liệu thử nghiệm của tôi: Khả năng giải mã UTF-8 và kiểm tra ứng suất. Hoặc là các nhân vật xấu đi qua không thay đổi hoặc dường như có một số byte của họ bị xóa tạo ra một ký tự mới, không hợp lệ.

Tôi không quen thuộc lắm với tiêu chuẩn UTF-8 hoặc với Multibyte trong JavaScript nên tôi không chắc liệu tôi không thể đại diện cho UTF-8 thích hợp trong Regex hay nếu tôi áp dụng Regex đó không đúng trong JavaScript.

EDIT: Đã thêm cờ toàn cầu vào bình luận của Regex mỗi Tomalak - tuy nhiên điều này vẫn không hiệu quả với tôi. Tôi đang từ bỏ việc làm điều này về phía khách hàng theo bình luận của Bobince.

HALFER

Huy hiệu vàng 19.6K1717 gold badges92 silver badges176 bronze badges17 gold badges92 silver badges176 bronze badges

Hỏi ngày 19 tháng 4 năm 2010 lúc 19:03Apr 19, 2010 at 19:03Apr 19, 2010 at 19:03

Matthew Sielskimatthew SielskiMatthew SielskiMatthew Sielski

1.1071 Huy hiệu vàng12 Huy hiệu bạc14 Huy hiệu đồng1 gold badge12 silver badges14 bronze badges1 gold badge12 silver badges14 bronze badges

1

Tôi sử dụng cách tiếp cận đơn giản và chắc chắn này:

function cleanString[input] {
    var output = "";
    for [var i=0; i

Chủ Đề