Pergunta

Especificamente, o parâmetro CN (Nome Comum), por exemplo,

Organizador; CN = John Doe, Eng: Mailto: jd@some.com

O RFC é vago nisso, IMHO. Está muito claro sobre valores de propriedade do modelo Texto, mas para este parâmetro, apenas diz "O valor do parâmetro é texto". De qualquer forma, a fuga especificada para o tipo de texto não parece completa para os valores dos parâmetros (por exemplo, 'não é escapada).

Muito obrigado!

Foi útil?

Solução

Davka,

Sim, os valores dos parâmetros podem ser escapes ao redor do valor em duas cochas. Os valores dos parâmetros devem ser escapados se eles contiverem algum dos seguintes caracteres:

; - semicolon
: - colon
, - comma

É ilegal ter uma cotação dupla " Os valores do parâmetro interno do caractere, para que eles sejam excluídos (ou removidos de outra forma do valor do parâmetro).

Então, com o seu exemplo acima, a fuga correta é a seguinte:

ORGANIZER;CN="John Doe,Eng":mailto:jd@some.com

Observe que uma vez o primeiro cólon (não cotado) : é encontrado, a análise de motores tratam o resto como o valor da propriedade. É legal usar o cólon : personagem dentro dos valores da propriedade, então o cólon em mailto:jd@some.com não precisa ser escapado.

Podemos quebrar a linha em suas partes:

  • ORGANIZER - nome da propriedade
  • ; - Delimitador de parâmetros
  • CN - nome do parâmetro
  • = - delimitador de valor do parâmetro
  • "John Doe,Eng" - valor do parâmetro
  • : - delimitador de valor da propriedade
  • mailto:jd@some.com - valor da propriedade

Aqui está uma cotação da seção 3.2 da RFC 5545, que explica quando os valores dos parâmetros são cercados de citações duplas e nos diz que as duas categorias são ilegais nos valores dos parâmetros:

Os valores dos parâmetros da propriedade que contêm os separadores de caracteres de cólon, emicolon ou vírgula devem ser especificados como valores de texto de cordas citadas. Os valores dos parâmetros da propriedade não devem conter o caractere dquote. O caractere dquote é usado como um delimitador para valores de parâmetros que contêm caracteres restritos ou texto URI. Por exemplo:

Descrição; Altrep = "CID: Part1.0001@example.org": The Fall'98 Wild Wizards Conference - - Las Vegas , NV , EUA

É importante observar que os parâmetros podem conter tecnicamente vários valores. Uma vírgula é usada para separar esses múltiplos valores:

(da seção 3.2.11 da RFC 5545 :)

ATTENDEE;MEMBER="mailto:projectA@example.com","mailto:pr
 ojectB@example.com":mailto:janedoe@example.com

Nem todos os mecanismos iCalendar aceitarão vários valores em todos os parâmetros, mas os seguintes parâmetros devem permitir vários valores (de acordo com o RFC):

  • MEMBRO
  • Delegado-da parte
  • DELEGADO A

Cumprimentos,

-Doug

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top