RFC 2047 Message Header Extensions cho văn bản Non-ASCII .1 Cú pháp các từ mã hóa

Một phần của tài liệu Ứng dụng xem bảng giá chứng khoán (Trang 56 - 59)

Một 'encoded-word' được định nghĩa trong ngữ pháp ABNF sau: Các ký hiệu của RFC 822 được sử dụng, với ngoại lệ là ký tự khoảng trắng KHÔNG PHẢI xuất hiện giữa các thành phần của một 'encoded-word'.

encoded-word = "=?" charset "?" encoding "?" encoded-text "?="

charset = token ; see section 3 encoding = token ; see section 4

token = 1*<Any CHAR except SPACE, CTLs, and especials>

especials = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "

<"> / "/" / "[" / "]" / "?" / "." / "="

encoded-text = 1*<Any printable ASCII character other than "?"

or SPACE>

; (but see "Use of encoded-words in message ; headers", section 5)

Một 'encoded-word' có thể không được quá 75 ký tự, bao gồm cả 'charset', 'mã hóa', 'mã hóa-văn bản', và delimiters. Nếu đó là mong muốn để mã hóa văn bản hơn sẽ phù hợp trong một 'encoded-word' 75 ký tự, nhiều 'encoded-word's (cách nhau bằng CRLF Space) có thể được sử dụng.

Trong khi không có giới hạn về độ dài của multi-lines header fields, mỗi dòng một header fields có chứa một hay nhiều 'encoded-word là giới hạn trong 76 ký tự.

Các hạn chế chiều dài để giảm bớt khả năng tương tác thông qua cổng thư của mạng, và để áp đặt một giới hạn về số lượng lookahead một cú pháp header phải sử dụng trước khi nó có thể quyết định liệu một token là một "encoded-word" hay cái gì khác.

3.3.3.2 Ký tự thiết lập

Các 'phần charset' của một 'encoded-word' chỉ các ký tự liên kết với các văn bản unencoded. Một 'charset' có thể được bất kỳ ký tự đặt tên, trong MIME một

"charset" tham số của một "text/ plain" một phần body, hoặc tên bất kỳ trong bộ ký tự đăng ký với IANA để sử dụng với MIME text/plain content-type.

Một số bộ mã ký tự sử dụng kỹ thuật chuyển đổi để chuyển đổi giữa các "ASCII Mode" và các chế độ khác. Nếu unencoded văn bản trong một 'encoded-word' chứa một trình tự mà nguyên nhân do charset chuyển ra khỏi chế độ ASCII, thì nó PHẢI chứa mã kiểm soát bổ sung.

3.3.3.3 Bảng mã

Ban đầu, giá trị pháp lý cho "encoding" là "Q" và "B". Bảng mã “Q” được khuyến khích sử dụng khi hầu hết các ký tự được mã hóa đang trong bộ ký tự ASCII; nếu không, nên sử dụng bảng mã “B”. Tuy nhiên, một người đọc thư đó tuyên bố công nhận 'encoded-word's PHẢI chấp nhận hoặc mã hóa cho các character set mà nó hỗ trợ.

Chỉ có một tập hợp con của các ký tự ASCII có thể in được sử dụng trong "encoced- word '. Không gian và các ký tự tab không được cho phép, vì vậy mà khi bắt đầu và kết thúc của một 'encoded-word' là hiển nhiên. Ký tự "?" được sử dụng trong một 'encoded-word' để phân cách các phần khác nhau của 'encoded-word”, và do đó không thể xuất hiện trong phần mã hóa của các văn bản '. Các ký tự khác cũng không được sử dụng trong ngữ cảnh nhất định.

3.3.3.4 Sử dụng mã hóa từ trong Header

Một 'encoded-word' có thể xuất hiện trong một tiêu đề tin nhắn hoặc tiêu đề một bodypart theo các nguyên tắc sau đây:

1.Một 'encoded-word' có thể thay thế một “text” token (như được định nghĩa bởi RFC 822) trong bất kỳ Subject hoặc Comment, bất kỳ thông báo extension header fields, hoặc bất kỳ MIME bodypart fields được định nghĩa là '*text'. Một 'encoded-word' cũng có thể xuất hiện ở bất kỳ người dùng xác định ( "X-") tin nhắn hoặc body part header fields.

Bình thường văn bản ASCII và 'encoded-word' có thể xuất hiện cùng nhau trong các lĩnh vực của cùng một header fiedls. Tuy nhiên, một 'encoded-word' xuất hiện trong một header fields định nghĩa là '* text'

phải được tách ra từ bất kỳ ‘encoded-wor' hoặc 'text' của ‘linear-white- space’.

2. Một 'encoded-word' có thể xuất hiện trong một 'comment' phân cách bằng "(" và ")", nghĩa là, bất cứ nơi nào là một 'ctext' thì được cho phép.

Chính xác hơn, các RFC 822 ABNF định nghĩa cho 'comment' được sửa đổi như sau:

comment = "(" *(ctext / quoted-pair / comment / encoded-word) ")"

3. Là một thực thể thay thế cho một ‘word’ trong 'phrase', ví dụ:

Một phần của tài liệu Ứng dụng xem bảng giá chứng khoán (Trang 56 - 59)

Tải bản đầy đủ (DOCX)

(127 trang)
w