2010-06-10 19 views
9

cụ thể, thông số CN (tên chung), ví dụ:có thể/nên iCal tài sản parametrs được thoát?

TỔ CHỨC; CN = John Doe, Eng: mailto: [email protected]

Các RFC là mơ hồ về vấn đề này, IMHO. Nó rất rõ ràng về giá trị thuộc tính của loại TEXT, nhưng đối với thông số này, nó chỉ nói "Giá trị tham số là văn bản". Dù sao, việc thoát được chỉ định cho loại TEXT có vẻ không hoàn chỉnh cho các giá trị tham số (ví dụ: ':' không được thoát).

cảm ơn rất nhiều!

Trả lời

16

Davka,

Có, giá trị tham số có thể được thoát bằng cách bao quanh giá trị trong dấu ngoặc kép. giá trị tham số phải được thoát ra nếu chúng chứa bất kỳ các ký tự sau:

; - semicolon 
: - colon 
, - comma 

Nó là bất hợp pháp để có một đôi quote " nhân vật bên trong giá trị tham số, vì vậy họ cần xóa (hoặc loại bỏ khỏi giá trị tham số).

Như vậy, với ví dụ trên của bạn, thoát đúng là thế này:

ORGANIZER;CN="John Doe,Eng":mailto:[email protected] 

Lưu ý rằng một khi là người đầu tiên (không thể viện chứng) ruột : đang gặp phải, động cơ phân tích cú pháp chữa trị phần còn lại là giá trị tài sản . Việc sử dụng ký tự đại tràng : bên trong các giá trị thuộc tính là hợp pháp, do đó, dấu hai chấm trong mailto:[email protected] không cần phải được thoát.

Chúng tôi có thể phá vỡ dòng thành phần của nó:

  • ORGANIZER - tên thuộc tính
  • ; - Thông số delimiter
  • CN - tên tham số
  • = - Thông số Giá trị phân tách
  • "John Doe,Eng" - giá trị thông số
  • : - tài sản giá trị delimiter
  • mailto:[email protected] - giá trị tài sản

Dưới đây là một trích dẫn từ RFC 5545 Phần 3.2 giải thích khi giá trị tham số được bao quanh với hai dấu ngoặc kép, và cho chúng ta biết hai dấu ngoặc kép là bất hợp pháp trong các giá trị tham số : giá trị tham số

tài sản có chứa Colon, dấu chấm phẩy, hoặc dấu phẩy tách nhân vật phải được xác định như các giá trị văn bản trích dẫn dây. Thuộc tính giá trị tham số PHẢI KHÔNG chứa ký tự DQUOTE.Ký tự DQUOTE được sử dụng làm dấu phân tách cho các giá trị tham số có chứa các ký tự bị giới hạn hoặc văn bản URI. Ví dụ:

MÔ TẢ; ALTREP = "cid: [email protected]": Các Fall'98 hoang dã Wizards Hội nghị - - Las Vegas \, NV \, USA

Đó là quan trọng cần lưu ý rằng các thông số về mặt kỹ thuật có thể chứa nhiều giá trị. Một dấu phẩy được sử dụng để tách những nhiều giá trị:

(từ mục 3.2.11 của RFC 5545 :)

ATTENDEE;MEMBER="mailto:[email protected]","mailto:pr 
[email protected]":mailto:[email protected] 

Không phải tất cả động cơ iCalendar sẽ chấp nhận nhiều giá trị trên tất cả các thông số, nhưng các thông số sau NÊN phép nhiều giá trị (theo RFC):

  • THÀNH VIÊN
  • giao-TỪ
  • giao-đẾN
  • 012.351.

Kính trọng,

-Doug

+0

thanks a lot tuyệt vời cho câu trả lời chi tiết! – davka

+0

Không có vấn đề - vui vì tôi có thể giúp :) – Doug

+0

Tôi không thể làm cho phương pháp tiếp cận dấu phẩy hoạt động trong Outlook 2013 và chỉ kết thúc chỉ định nhiều dòng ATTENDEE. –

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