Ký tự thoát HTML là gì?

Bên trong một phần tử, phần tử này chỉ bao gồm ký hiệu thoát thực thể và

Content-Type: text/html; charset=utf-8
0 và dấu phân cách phần tử nhỏ hơn và lớn hơn dấu
Content-Type: text/html; charset=utf-8
Content-Type: text/html; charset=utf-8
2

Đây là ba ký tự chính luôn được thoát trong các tệp HTML và XML của bạn,

& becomes &
< becomes <
> becomes >

Bên trong các giá trị thuộc tính, bạn cũng phải thoát khỏi ký tự trích dẫn mà bạn đang sử dụng

" becomes "
' becomes '

Ví dụ về cách thoát ký tự HTML

Thoát mã ví dụ HTML và ký tự không thoát bằng JavaScript





  

đầu ra

Ký tự thoát HTML là gì?

Một số thực thể ký tự HTML hữu ích

ResultDescriptionEntity NameEntity Numbernon-breaking space  greater than>>&ersand&&“double quotation mark""‘single quotation mark (apostrophe)''¢cent¢¢£pound££¥yen¥¥€euro€€©copyright©©®registered trademark®®

Hãy bình luận nếu bạn có bất kỳ nghi ngờ và đề xuất nào về mã thoát HTML này

Ghi chú. Tất cả các mã Ví dụ về HTML đều được kiểm tra trên trình duyệt Firefox và trình duyệt Chrome

hệ điều hành. cửa sổ 10

Mã số. Phiên bản HTML5

Ký tự thoát HTML là gì?

Rohit

Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật

lớn hơn dấu> @at sign@[dấu ngoặc trái[ ]dấu ngoặc phải]`dấu nháy đơn ngược` {dấu ngoặc nhọn trái{. thanh dọc. }dấu ngoặc nhọn bên phải}~dấu ngã~ …dấu chấm lửng…†dagger† ‡dagger đôi‡'dấu nháy đơn bên trái' 'dấu nháy đơn bên phải'“dấu ngoặc kép bên trái“ ”dấu ngoặc kép bên phải”•dấu đầu dòng • –dấu gạch ngang ngắn–—dấu gạch ngang dài hơn— ™
  khác với không gian thông thường ở chỗ không gian thông thường không cấm ngắt dòng. Vị trí của   sẽ không có dấu ngắt dòng. Trong HTML, hai hoặc nhiều khoảng trắng trong một hàng được chuyển đổi thành một khoảng trắng. Trong khi số khoảng cách vẫn như được chỉ định trong mã HTML. 28-Mar-2021

Trong khi Ngôn ngữ đánh dấu siêu văn bản (HTML) đã được sử dụng từ năm 1991, HTML 4. 0 từ tháng 12 năm 1997 là phiên bản tiêu chuẩn hóa đầu tiên trong đó các ký tự quốc tế được xử lý hoàn chỉnh hợp lý. Khi một tài liệu HTML bao gồm các ký tự đặc biệt nằm ngoài phạm vi ASCII bảy bit, hai mục tiêu đáng được xem xét. tính toàn vẹn của thông tin và hiển thị trình duyệt chung

Chỉ định mã hóa ký tự của tài liệu[sửa]

Có hai cách chung để chỉ định mã hóa ký tự nào được sử dụng trong tài liệu

Đầu tiên, máy chủ web có thể bao gồm mã hóa ký tự hoặc "

Content-Type: text/html; charset=utf-8
3" trong tiêu đề Giao thức truyền siêu văn bản (HTTP)
Content-Type: text/html; charset=utf-8
4, tiêu đề này thường trông như thế này. [1]

Content-Type: text/html; charset=utf-8

Phương pháp này cung cấp cho máy chủ HTTP một cách thuận tiện để thay đổi mã hóa của tài liệu theo thỏa thuận nội dung; . [2]

Thứ hai, một tuyên bố có thể được bao gồm trong chính tài liệu

Đối với HTML, có thể bao gồm thông tin này bên trong phần tử

Content-Type: text/html; charset=utf-8
6 ở gần đầu tài liệu. [3]

HTML5 cũng cho phép cú pháp sau có nghĩa giống hệt nhau. [3]

Tài liệu XHTML có tùy chọn thứ ba. để thể hiện mã hóa ký tự thông qua khai báo XML, như sau. [4]

Với cách tiếp cận thứ hai này, vì không thể biết mã hóa ký tự cho đến khi khai báo được phân tích cú pháp, nên có một vấn đề là biết mã hóa ký tự nào được sử dụng trong tài liệu cho đến và bao gồm cả chính khai báo đó. Nếu mã hóa ký tự là một phần mở rộng ASCII thì nội dung cho đến và bao gồm cả phần khai báo phải là ASCII thuần túy và điều này sẽ hoạt động chính xác. Đối với mã hóa ký tự không phải là phần mở rộng ASCII (i. e. không phải là tập hợp siêu của ASCII), chẳng hạn như UTF-16BE và UTF-16LE, bộ xử lý HTML, chẳng hạn như trình duyệt web, sẽ có thể phân tích cú pháp khai báo trong một số trường hợp thông qua việc sử dụng heuristic

Thuật toán phát hiện mã hóa[sửa | sửa mã nguồn]

Kể từ HTML5, bộ ký tự được đề xuất là UTF-8. [3] Một "thuật toán đánh hơi mã hóa" được xác định trong thông số kỹ thuật để xác định mã hóa ký tự của tài liệu dựa trên nhiều nguồn đầu vào, bao gồm

  1. Hướng dẫn sử dụng rõ ràng
  2. Thẻ meta rõ ràng trong 1024 byte đầu tiên của tài liệu
  3. Dấu thứ tự byte (BOM) trong ba byte đầu tiên của tài liệu
  4. Loại nội dung HTTP hoặc thông tin lớp vận chuyển khác
  5. Phân tích các byte tài liệu tìm kiếm các chuỗi hoặc phạm vi giá trị byte cụ thể,[5] và các cơ chế phát hiện dự kiến ​​khác

Các ký tự bên ngoài phạm vi ASCII có thể in được (32 đến 126) thường xuất hiện không chính xác. Điều này gây ra một số vấn đề đối với người dùng nói tiếng Anh, nhưng các ngôn ngữ khác thường xuyên—trong một số trường hợp, luôn luôn—yêu cầu các ký tự nằm ngoài phạm vi đó. Trong các môi trường ngôn ngữ tiếng Trung, tiếng Nhật và tiếng Hàn (CJK), nơi có một số mã hóa nhiều byte khác nhau được sử dụng, tính năng tự động phát hiện cũng thường được sử dụng. Cuối cùng, các trình duyệt cũng thường cho phép người dùng ghi đè nhãn bộ ký tự không chính xác theo cách thủ công

Các trang web đa ngôn ngữ và trang web bằng các ngôn ngữ không thuộc phương Tây sử dụng UTF-8 ngày càng phổ biến, cho phép sử dụng cùng một mã hóa cho tất cả các ngôn ngữ. UTF-16 hoặc UTF-32, cũng có thể được sử dụng cho tất cả các ngôn ngữ, ít được sử dụng rộng rãi hơn vì chúng có thể khó xử lý hơn trong các ngôn ngữ lập trình giả sử mã hóa siêu bộ ASCII hướng byte và chúng kém hiệu quả hơn đối với văn bản với

Việc xem thành công một trang không nhất thiết là dấu hiệu cho thấy mã hóa của trang đó được chỉ định chính xác. Nếu cả người tạo và người đọc trang đều giả định một số mã hóa ký tự dành riêng cho nền tảng và máy chủ không gửi bất kỳ thông tin nhận dạng nào, thì người đọc vẫn sẽ thấy trang như ý định của người tạo, nhưng những người đọc khác trên các nền tảng khác hoặc bằng các ngôn ngữ bản địa khác

Mã hóa được phép[sửa]

Tiêu chuẩn mã hóa WHATWG, được tham chiếu bởi các tiêu chuẩn HTML gần đây (Tiêu chuẩn sống của WHATWG HTML hiện tại, cũng như W3C HTML 5 cạnh tranh trước đây. 0 và 5. 1) chỉ định danh sách mã hóa mà trình duyệt phải hỗ trợ. Các tiêu chuẩn HTML cấm hỗ trợ các bảng mã khác. [6][7][8] Tiêu chuẩn mã hóa quy định thêm rằng các định dạng mới, giao thức mới (ngay cả khi các định dạng hiện có được sử dụng) và tác giả của các tài liệu mới được yêu cầu sử dụng riêng UTF-8. [9]

Ngoài UTF-8, các bảng mã sau được liệt kê rõ ràng trong chính tiêu chuẩn HTML, có tham chiếu đến Tiêu chuẩn mã hóa. [số 8]

  1. ^ Cũng được chỉ định cho
    Content-Type: text/html; charset=utf-8
    
    7,
    Content-Type: text/html; charset=utf-8
    
    8 và các nhãn liên quan. [9]
  2. ^ Cũng được chỉ định cho
    Content-Type: text/html; charset=utf-8
    
    9,
    0 và các nhãn liên quan. [9]
  3. ^ Cũng được chỉ định cho
    1 và các nhãn liên quan. [9]
  4. ^ Được chỉ định với 0xA3A0 dưới dạng mã hóa trùng lặp của không gian chữ tượng hình (U+3000) vì lý do tương thích và như vậy loại trừ U+E5E5 (ký tự sử dụng riêng). [10][11] Ngoài ra, được chỉ định với 0x80 được chấp nhận làm mã hóa thay thế cho ký hiệu đồng euro (U+20AC; xem Windows-936). [12] Mặt khác, tuân theo các ánh xạ từ tiêu chuẩn 2005. [11]
  5. ^ Biến thể Bộ ký tự bổ sung Hồng Kông, mặc dù hầu hết các phần mở rộng HKSCS (những phần mở rộng có byte dẫn đầu nhỏ hơn 0xA1) không được bao gồm bởi bộ mã hóa, chỉ bởi bộ giải mã. [13]
  6. ^ Thông số kỹ thuật bao gồm các phần mở rộng của IBM và NEC (xem Windows-31J). [14]
  7. ^ Thông số kỹ thuật sử dụng cùng một chỉ mục như được sử dụng cho Shift JIS (trong chừng mực có thể đạt được), i. e. bao gồm các phần mở rộng NEC. Kana nửa chiều rộng được bộ mã hóa chuyển thành chiều rộng đầy đủ,[15] nhưng được bộ giải mã chấp nhận bằng cách sử dụng chuỗi thoát (ESC 0x28 0x49). [16] Shift Out và Shift In (0x0E và 0x0F) bị loại trừ hoàn toàn để ngăn chặn các cuộc tấn công. [16][17]
  8. ^ Trên thực tế là Mã Hangul Thống nhất, là một siêu bộ bao gồm toàn bộ khối Âm tiết Hangul. [18]
  9. ^ Chỉ định để giải mã; . [19]
  10. ^ Để tương thích với nội dung đã triển khai, cũng được chỉ định cho nhãn
    2 đơn giản,[20] mặc dù dấu thứ tự byte (BOM), nếu có, sẽ được ưu tiên hơn bất kỳ nhãn nào. [21] Chỉ định để giải mã; . [19]
  11. ^ Ánh xạ 0x00 đến 0x7F đến U+0000 đến U+007F và 0x80 đến 0xFF đến U+F780 đến U+F7FF (dải Vùng sử dụng riêng tư), sao cho 8 bit thấp của điểm mã luôn khớp với byte gốc. [22]

Các mã hóa bổ sung sau đây được liệt kê trong Tiêu chuẩn mã hóa và do đó cũng cần hỗ trợ cho chúng. [9]

  1. ^ Sử dụng cùng một bộ mã hóa và bộ giải mã như ISO-8859-8, nhưng không tuân theo hành vi sắp xếp trực quan được sử dụng cho các tài liệu có nhãn là ISO-8859-8. [23]
  2. ^ Có tiêu đề KOI8-U và được chỉ định cho cả nhãn
    3 và 
    4,[9] nhưng theo sau KOI8-RU (i. e. bao gồm Ў/ў). [24][25]
  3. ^ Cũng được chỉ định cho
    5 và các nhãn liên quan. Xử lý giống như GB 18030 cho mục đích giải mã. [26] Đối với mục đích mã hóa, việc gắn nhãn là GBK (hoặc GB 2312) không bao gồm mã bốn byte và ưu tiên biểu diễn 0x80 một byte cho U+20AC. [10]
  4. ^ Thông số kỹ thuật sử dụng cùng một chỉ mục như được sử dụng cho Shift JIS (trong chừng mực mà bộ mã EUC 1 đạt được), i. e. bao gồm các phần mở rộng NEC. JIS X 0212 chỉ được bao gồm để giải mã. [27]

Các mã hóa sau đây được liệt kê là ví dụ rõ ràng về mã hóa bị cấm. [số 8]

Tiêu chuẩn cũng xác định bộ giải mã "thay thế", ánh xạ tất cả nội dung được gắn nhãn là mã hóa nhất định cho ký tự thay thế (�), hoàn toàn từ chối xử lý nội dung đó. Điều này nhằm mục đích ngăn chặn các cuộc tấn công (e. g. tập lệnh chéo trang) có thể khai thác sự khác biệt giữa máy khách và máy chủ về mã hóa nào được hỗ trợ để che dấu nội dung độc hại. [28] Mặc dù mối quan tâm bảo mật tương tự áp dụng cho ISO-2022-JP và UTF-16, cũng cho phép các chuỗi byte ASCII được diễn giải theo cách khác, phương pháp này không được coi là khả thi đối với chúng vì chúng được sử dụng tương đối thường xuyên hơn trong triển khai . [29] Các bảng mã sau nhận được cách xử lý này. [30]

Tài liệu tham khảo nhân vật [ chỉnh sửa ]

Ngoài mã hóa ký tự gốc, các ký tự cũng có thể được mã hóa dưới dạng tham chiếu ký tự, có thể là tham chiếu ký tự số (thập phân hoặc thập lục phân) hoặc tham chiếu thực thể ký tự. Tham chiếu thực thể ký tự đôi khi cũng được gọi là thực thể được đặt tên hoặc thực thể HTML cho HTML. Việc sử dụng các tham chiếu ký tự của HTML bắt nguồn từ SGML

Tham chiếu ký tự HTML[sửa mã nguồn]

Một tham chiếu ký tự số trong HTML đề cập đến một ký tự theo điểm mã Unicode/Bộ ký tự chung của nó và sử dụng định dạng

6

hoặc

7

trong đó nnnn là điểm mã ở dạng thập phân và hhhh là điểm mã ở dạng thập lục phân. X phải là chữ thường trong tài liệu XML. nnnn hoặc hhhh có thể là bất kỳ số chữ số nào và có thể bao gồm các số 0 đứng đầu. hhhh có thể trộn lẫn chữ hoa và chữ thường, mặc dù chữ hoa là kiểu thông thường

Không phải tất cả các trình duyệt web hoặc ứng dụng email được sử dụng bởi người nhận tài liệu HTML hoặc trình soạn thảo văn bản được tác giả của tài liệu HTML sử dụng đều có thể hiển thị tất cả các ký tự HTML. Hầu hết các phần mềm hiện đại đều có thể hiển thị hầu hết hoặc tất cả các ký tự cho ngôn ngữ của người dùng và sẽ vẽ một hộp hoặc chỉ báo rõ ràng khác cho các ký tự mà chúng không thể hiển thị

Đối với các mã từ 0 đến 127, bộ tiêu chuẩn ASCII 7 bit ban đầu, hầu hết các ký tự này có thể được sử dụng mà không cần tham chiếu ký tự. Tất cả các mã từ 160 đến 255 đều có thể được tạo bằng tên thực thể ký tự. Chỉ một số mã được đánh số cao hơn có thể được tạo bằng cách sử dụng tên thực thể, nhưng tất cả đều có thể được tạo bằng tham chiếu ký tự số thập phân

Các tham chiếu thực thể ký tự cũng có thể có định dạng

8 trong đó tên là một chuỗi chữ và số phân biệt chữ hoa chữ thường. Ví dụ: "λ" cũng có thể được mã hóa thành 
9 trong tài liệu HTML. Các tham chiếu thực thể ký tự 
0, 
1, 
2 và 
3 được xác định trước trong HTML và SGML, bởi vì 
0, 
1, 
2 và 
3 đã được sử dụng để phân định đánh dấu. Đáng chú ý là điều này không bao gồm thực thể 
8 (') của XML trước HTML5. Để biết danh sách tất cả các tham chiếu thực thể ký tự HTML đã đặt tên cùng với các phiên bản mà chúng được giới thiệu, hãy xem Danh sách tham chiếu thực thể ký tự XML và HTML

Việc sử dụng tham chiếu ký tự HTML không cần thiết có thể làm giảm đáng kể khả năng đọc HTML. Nếu mã hóa ký tự cho một trang web được chọn phù hợp, thì các tham chiếu ký tự HTML thường chỉ được yêu cầu đối với các ký tự phân tách đánh dấu như đã đề cập ở trên và đối với một vài ký tự đặc biệt (hoặc hoàn toàn không có ký tự nào nếu sử dụng mã hóa Unicode gốc như UTF-8 . Thoát thực thể HTML không chính xác cũng có thể mở ra các lỗ hổng bảo mật cho các cuộc tấn công tiêm chích, chẳng hạn như tập lệnh chéo trang. Nếu các thuộc tính HTML không được trích dẫn, một số ký tự nhất định, quan trọng nhất là khoảng trắng, chẳng hạn như dấu cách và tab, phải được thoát bằng cách sử dụng các thực thể. Các ngôn ngữ khác liên quan đến HTML có phương thức thoát ký tự riêng

Tham chiếu ký tự XML[sửa]

Không giống như HTML truyền thống với nhiều tham chiếu thực thể ký tự, trong XML chỉ có năm tham chiếu thực thể ký tự được xác định trước. Chúng được sử dụng để thoát các ký tự nhạy cảm với đánh dấu trong các ngữ cảnh nhất định. [31]

  • 3 → & (dấu và, U+0026)
  • 0 → < (nhỏ hơn dấu, U+003C)
  • 1 → > (dấu lớn hơn, U+003E)
  • 2 → " (dấu ngoặc kép, U+0022)
  • 8 → ' (dấu nháy đơn, U+0027)

Tất cả các tham chiếu thực thể ký tự khác phải được xác định trước khi chúng có thể được sử dụng. Ví dụ: việc sử dụng

Content-Type: text/html; charset=utf-8
34 (cung cấp é, chữ E viết thường trong tiếng Latinh có dấu rõ ràng, U+00E9 trong Unicode) trong tài liệu XML sẽ tạo ra lỗi trừ khi thực thể đã được xác định. XML cũng yêu cầu
Content-Type: text/html; charset=utf-8
35 trong tham chiếu số thập lục phân phải ở dạng chữ thường. ví dụ
Content-Type: text/html; charset=utf-8
36 thay vì
Content-Type: text/html; charset=utf-8
36. XHTML, là một ứng dụng XML, hỗ trợ tập thực thể HTML, cùng với các thực thể được xác định trước của XML

Ví dụ ký tự thoát là gì?

Ký tự thoát là dấu gạch chéo ngược \ theo sau là ký tự bạn muốn chèn .

Ký tự thoát có nghĩa là gì?

Trong điện toán và viễn thông, một ký tự thoát là ký tự đưa ra cách giải thích thay thế cho các ký tự sau trong chuỗi ký tự . Một ký tự thoát là một trường hợp cụ thể của siêu ký tự.

Tôi có thể thoát các ký tự đặc biệt của HTML không?

Chuỗi − Chúng ta có thể chuyển bất kỳ chuỗi HTML nào làm đối số để thoát khỏi các ký tự đặc biệt và mã hóa nó .