Tengo un enlace mailto:
aquí, incluidos los parámetros subject=
y body=
, pero no estoy seguro de cómo escapar correctamente de los datos en los parámetros.¿Cuál es la forma correcta de escapar de una cadena para un enlace de mailto?
La página está codificada en utf-8
así que supongo que todos los caracteres especiales como umlauts alemanes deberían codificarse en representaciones de utf-8
también para la URL.
Por el momento estoy usando rawurlencode()
como urlencode()
insertaría +
caracteres en todos los lugares en los espacios deberían haber estado, pero no estoy seguro si esta es la forma correcta de hacerlo.
, habría pensado que, o bien 'rawurlencode()' O r 'urlencode()' debería hacer el trabajo: el navegador debe decodificar correctamente cualquier versión antes de pasarla al cliente de correo. También podría crear una matriz de parámetros y usar ['http_build_query()'] (http://php.net/manual/en/function.http-build-query.php) - la cadena de consulta está en el mismo formato . Asegúrese de pasar también la cadena resultante de cualquiera de esas opciones a través de ['htmlspecialchars()'] (http://php.net/manual/en/function.htmlspecialchars.php) si se va a utilizar en una página HTML. ... – DaveRandom
Bueno, funciona así en todos los casos de uso en los que pensé, pero tal vez no sea la forma correcta de hacerlo y mi navegador/cliente de correo solo reconoce y soluciona correctamente ese error, por eso se lo pide, solo para ser seguro :) – bardiir
Puede haber situaciones donde una funcionará y la otra no, pero si este es el caso, entonces sería culpa del navegador por no interpretarlo correctamente. Si hay un error conocido con uno u otro, obviamente es mejor evitarlo, pero no conozco ningún navegador moderno que cometa un error tan fundamental, si es que hay uno, probablemente será tan pobre como para serlo. inutilizable de todos modos. – DaveRandom