Ho un collegamento mailto:
in una pagina qui compresi i parametri subject=
e body=
ma non sono sicuro su come eseguire correttamente l'escape dei dati nei parametri.Qual è il modo corretto di sfuggire a una stringa per un collegamento mailto
La pagina è codificata in utf-8
quindi immagino che tutti i caratteri speciali come le dieresi tedesche debbano essere codificati anche nelle rappresentazioni utf-8
per l'URL?
Al momento sto usando rawurlencode()
come urlencode()
sarebbe inserire +
caratteri in tutti i luoghi dove gli spazi avrebbero dovuto essere, ma non sono sicuro se questo è il modo corretto per farlo.
avrei pensato che o 'rawurlencode()' o r 'urlencode()' dovrebbe fare il lavoro - il browser dovrebbe decodificare correttamente la versione prima di passarla al client di posta. Si potrebbe anche creare un array dei parametri ed usare [ 'http_build_query()'] (http://php.net/manual/en/function.http-build-query.php) - la stringa di query è nello stesso formato . Assicurarsi che si passa anche la stringa risultante da questi opzioni attraverso [ 'htmlspecialchars()'] (http://php.net/manual/en/function.htmlspecialchars.php) se deve essere utilizzato in una pagina HTML ... – DaveRandom
Beh, funziona così in tutti i casi d'uso che ho pensato, ma forse non è il modo corretto di fare questo e il mio browser/client di posta elettronica semplicemente riconoscere e lavorare in modo corretto in giro che l'errore, è per questo che viene chiesto, solo per essere sicuro :) – bardiir
Ci possono essere situazioni in cui uno funzionerà e l'altro no, ma se questo è il caso, sarebbe colpa del browser non interpretarlo correttamente. Se c'è un bug noto con uno o l'altro, ovviamente è meglio evitarlo, ma non conosco nessun browser moderno che possa fare un errore così fondamentale - se ce n'è uno, sarà probabilmente così povero da essere comunque inutilizzabile. – DaveRandom