Việc sử dụng của ut ut88 có phải là thích hợp hơn với ut ut8 = đúng không?


569

Gần đây tôi đã thấy một vài URI chứa tham số truy vấn "utf8 = ✓". Ấn tượng đầu tiên của tôi (sau khi nghĩ "mmm, trông thật tuyệt") là điều này có thể được sử dụng để phát hiện mã hóa ký tự bị hỏng.

Vì vậy, đây có phải là cách tốt hơn để giải quyết các vấn đề tiềm ẩn với mã hóa ký tự hay chỉ là một nhà phát triển vui vẻ với hack?


7
Tôi không đồng ý. Có những kế hoạch ngoài kia trông giống như URN và lấy tham số truy vấn - chẳng hạn như Bitcoin. Các URI không bị giới hạn trong các trình duyệt. Xem en.wikipedia.org/wiki/URI_scheme . Câu hỏi này cũng có thể giải quyết trường hợp chung trong đó yêu cầu mã hóa ký tự khi trình duyệt truy cập trình xử lý giao thức.
Gary Rowe

3
Cho ví dụ về các URL này hoặc không xảy ra.
hakre

10
Tắt chủ đề, nhưng OK. Đây là tài trợ cá nhân của tôi Bitcoin URI: bitcoin: 1KzTSfqjF2iKCduwz59nv2uqh1W2JsTxZH? Lượng = 0,5 & nhãn = Agile% 20Stack. Lưu ý rằng lược đồ về cơ bản là một URN với các tham số truy vấn, nhưng nó xử lý một trình xử lý giao thức. Loại URI này có thể có thể được hưởng lợi từ cách giải quyết utf8 = ✓.
Gary Rowe

1
@GaryRowe Vậy bạn đã bao giờ nhận được bất kỳ đóng góp nào từ liên kết đó chưa?
Kyralessa

Câu trả lời:


814

Theo mặc định, các phiên bản IE cũ hơn (<= 8) sẽ gửi dữ liệu biểu mẫu ở dạng mã hóa Latin-1 nếu có thể. Bằng cách bao gồm một ký tự không thể được biểu thị bằng tiếng Latin-1, IE buộc phải sử dụng mã hóa UTF-8 để gửi biểu mẫu, giúp đơn giản hóa các quy trình phụ trợ khác nhau, ví dụ như việc duy trì cơ sở dữ liệu.

Nếu tham số thay vào utf8=trueđó thì điều này sẽ không kích hoạt mã hóa UTF-8 trong các trình duyệt này.


8
@LarsViklund Tôi nên rõ ràng hơn với nhận xét của tôi. Tôi có nghĩa là việc xác nhận liên quan đến mã hóa ký tự được đơn giản hóa, không được bỏ qua.
Gary Rowe

3
@Lars Đúng, nó không cho phép bạn kiểm tra đầu vào của bạn. Nhưng điều đó có nghĩa là các chỉnh sửa mã hóa chỉ trở thành một phần trong xử lý bảo mật của bạn và không làm mờ khái niệm về đường dẫn "xử lý tiêu chuẩn" của bạn
Gareth

36
Đồng thời xem stackoverflow.com/questions/3222013/iêu . Rõ ràng Ruby on Rails đã từng sử dụng một nhân vật người tuyết, và đã được đổi thành một dấu kiểm ít mơ hồ hơn nhưng ít hài hước hơn.
Jack V.

11
@JohnLBevan Nó bị bỏ qua bởi phần cuối nhận, đã hoàn thành công việc buộc trình duyệt gửi mọi thứ trong utf8 thay vì latin1. Tôi cũng đã xem nó như là = 💩 (đó là điểm mã 'đống poo', có vẻ như nó không hiển thị trong các nhận xét.)
cabbey

3
@Gareth: Bạn có thể sao lưu tuyên bố rằng IE <= 8 biểu mẫu không hỗ trợ tài liệu và / hoặc mã hóa biểu mẫu không?
hakre
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.