2012-01-16 22 views
14

I have read Tôi nên mã hóa các ký hiệu của mình thành & trong HTML.
Tuy nhiên, nhiều mẫu mã từ các công ty được tôn trọng bằng cách nào đó quên làm điều này.Tại sao tài liệu Twitter và Google API không mã hóa các ký hiệu và URL trong URL?

Chỉ cần một vài ví dụ ra khỏi đỉnh đầu của tôi:

Google Web Fonts mẫu mã:

<link href='http://fonts.googleapis.com/css?family=PT+Sans&subset=latin,cyrillic' rel='stylesheet' type='text/css'> 

Google Maps tài liệu:

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false&language=ja"> 

Twitter Anywhere hướng dẫn chính thức:

<script src="http://platform.twitter.com/anywhere.js?id=YOUR_API_KEY&v=1" type="text/javascript"></script> 

Có bất kỳ lợi ích thực sự nào từ không phải ký hiệu thoát và trong liên kết không?
Điều này liên quan đến trình duyệt quirks? Đây có phải chỉ là một sai lầm trong tài liệu?

Kính gửi câu trả lời, vui lòng đảm bảo rằng bạn đang trả lời câu hỏi đúng.

Tôi biết tôi nên ký hiệu thoát cho mỗi thông số kỹ thuật. Tôi cũng biết lý do tại sao cơ chế này được phát minh ngay từ đầu. Tôi không phải là asking about this. Câu hỏi của tôi là:

lý do Tài liệu API của các công ty đáng kính thường vi phạm quy tắc này?

+0

Trả lời, xin lưu ý rằng họ không làm điều này vì nó chính xác. Không mã hóa ký hiệu và thực sự vi phạm [đặc tả HTML 4.1, phần 5.3.2: Tham chiếu đối tượng ký tự] (http://www.w3.org/TR/html401/charset.html#h-5.3.2): * Tác giả nên sử dụng "&" (ASCII thập phân 38) thay vì "&" để tránh nhầm lẫn với sự bắt đầu của tham chiếu ký tự (tham chiếu dấu phân cách thực thể). ** Tác giả cũng nên sử dụng "&" trong các giá trị thuộc tính vì các tham chiếu ký tự được cho phép trong các giá trị thuộc tính CDATA *** –

+1

Dan, tôi nhận ra bạn đã liên kết với một câu hỏi về điều đó trong bài đăng của bạn, nhưng những người trả lời hiện tại dường như đã bỏ qua nó. –

+0

@ Jeremy: cảm ơn vì nhận xét, tôi đã chỉnh sửa câu hỏi. –

Trả lời

4

Có lợi ích thực sự nào từ việc không thoát khỏi ký hiệu và liên kết không?

Nó sẽ lưu một vài lần nhấn phím.

Điều này liên quan đến trình duyệt quirks?

Không

Đây có phải là chỉ là một lỗi trong tài liệu?

Có một tài liệu API lý bởi các công ty đáng kính thường vi phạm quy tắc này?

Sự thiếu hiểu biết và/hoặc lười biếng. Trình duyệt thực hiện khôi phục lỗi để chúng không nhận thấy lỗi hoặc chúng không quan tâm. Các tài liệu có lẽ không được viết bởi các chuyên gia tốt nhất của họ.

5

Hai ngữ cảnh khác nhau tại đây.

  1. Trong ngữ cảnh của javascript href, & là tốt và không được mã hóa.
  2. Trong liên kết HTML, & bị cấm và phải được thoát.

Trong ngữ cảnh liên kết HTML, thực thể ký tự HTML sẽ được giải mã trước khi địa chỉ được chuyển đến quy trình HTTP; một ký tự mã hóa URL sẽ không, vì máy chủ có thể đọc nó trực tiếp.

Các vấn đề liên quan