将多文本从Android发送到API

时间:2018-07-17 18:27:59

标签: php android api android-edittext

我在android中创建了一个“联系我们表单”,该表单使用PHP Api向我发送电子邮件。例如,在EditText消息中,我输入:

This is line 1\nThis is line 2\n

当我收到电子邮件时显示以下内容:

         String myURL = myDomain+myPHPDir+"sendMessageFromContactUs.php?pMyUsername="+myUsername
             +"&pName="+strName
             +"&pEmail="+strEmail
             +"&pMessage="+strMessage
             ;
     String noSpace = myURL.replaceAll(" ","%20").replaceAll("\n", "%0A");
     task.execute(new String[] {noSpace});

发送电子邮件的代码:

vue init pwa [project_name]

1 个答案:

答案 0 :(得分:0)

我通过以下方式解决了它。

在PHP上:

  • 首先"\n" or "\r\n"对我不起作用,它打印在同一行上。
  • 第二次"<br>"起作用了,它在新行上打印了字符。

然后,我从下面的源代码中阅读“ URL转义字符的完整指南”:

https://www.werockyourweb.com/url-escape-characters/

所以:

for <br> this < is %3C AND this > is %3E THEREFORE <br> becomes %3Cbr%3E

关于Android:

我从(无法正常工作)更改为:

String noSpace = myURL.replaceAll(" ","%20").replaceAll("\n","%0A");

致(工作):

String noSpace = myURL.replaceAll(" ","%20").replaceAll("\n","%3Cbr%3E");

现在,我可以在EditText中编写段落了,Outlook可以正确显示它们。

干杯!

更新:(只需添加)

解释这些字符的方式(后来我了解了这一点,并分享了此更新的原因)是由于发送邮件的php脚本中使用了标头:(设置$ header时使用的字符文本/ html内容类型(如下面的代码所示)将使用HTML(不再是PHP)转义字符)

$headers = "Content-type: text/html; charset=\"UTF-8\";