繁体   English   中英

如何解决使用mailto时不显示正文中的换行符?

[英]How to fix not showing line break in body while using mailto?

我的代码:

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=Hello%0D%0A%0D%0Aworld..">
   click here to mail me
</a>

预期 output:

在此处输入图像描述

我现在得到的是 output:

在此处输入图像描述

我尝试使用%0D%0A但它不起作用。 我也从这里尝试了一些 java 脚本方法,但这些方法似乎不起作用。

我用来检查邮件的应用程序:output 是我的 android 设备中的默认 Gmail 应用程序。

编辑[解决方案]

只需使用<br>标签即可与第三方应用程序(例如 gmail for android)一起正常工作。

%0D%0A 是进位返回和换行字符,使用 %20 作为空格,就像您在主题中所做的那样:

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=Hello%20world..">
   click here to mail me
</a>

如果您想要换行符,请使用%0D%0A ,如下所示:

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=Hello%0D%0Aworld..">
   click here to mail me
</a>

如果您检查十六进制值,您可以查看这些值在ascii 表中的含义,您会看到 A、D、E 和 20 等于什么。

只需使用<br>标签,就可以很好地与第三方应用程序(例如 gmail for android)配合使用。

固定代码,

<a href="mailto:anything@any.com?subject=This%20is%20Subject&body=Hello<br><br>world..">
   click here to mail me
</a>

2020 年 9 月 9 日更新这已在最近的 Gmail 版本中再次更改 - 例如版本2020.08.09.327326543.Release - \r\n用于使用mailto:现在再次起作用,而<br>不起作用。

我只能假设这是一个回归错误,而不是 Gmail 应用程序的故意更改,该应用程序现已修复。

原答案:

我最近在我的 Android 应用程序中看到了一个问题,这些应用程序在使用mailto:时一直使用编码的\r\n换行符:打开 Gmail 作为默认的 email 客户端。 虽然这以前工作正常,但现在换行符显示为一个空格。

在进行一些测试后,Gmail 应用程序的行为似乎在最近的更新中发生了变化。

我创建了一个包含两个链接的测试页面,一个使用编码的\r\n ,一个使用<br>用于正文中的换行符:

mailto:anything@any.com?body=Hello%0D%0Aworld
mailto:anything@any.com?body=Hello<br>world

在 Android 仿真器中运行 Android 10/API 29 和 Gmail 应用程序版本2019.05.12.250526289.release :

像素3-gmail

\r\n链接正常工作:

![pixel3-rn

但是<br>链接没有:

![pixel3-br

在运行 Android 11 Beta/API 30 和 Gmail 应用程序版本2020.04.29.309137422.release的 Android 仿真器中:

pixel3a-gmail

<br>链接正常工作:

像素3a-br

但是\r\n链接没有:

像素3a-rn

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM