2 oelysion oElysion 于 2015.07.17 15:28 提问

java发送邮件不能带"&"

如题 , url中带了&自动把后面的字符截掉了 , 请问如何避免

6个回答

CSDNXIAON
CSDNXIAON   2015.07.17 15:32

java发送邮件
java 发送邮件
Java发送邮件
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

danielinbiti
danielinbiti   Ds   Rxr 2015.07.17 15:33

html字符转义,用 %26 代替
http://www.tuicool.com/articles/YzYfaa

danielinbiti
danielinbiti 回复oElysion: 应该是邮件截的,不过没试过
2 年多之前 回复
oElysion
oElysion 回复danielinbiti: 我没有做任何文本的过滤,javaMail也没有做, 我试了几种链接,除了& 不能带 ? # ^都没问题 ,
2 年多之前 回复
danielinbiti
danielinbiti 回复oElysion: 可能是邮件系统截的
2 年多之前 回复
oElysion
oElysion 回复danielinbiti: URL并不是获取的, 而是文本框自己输入的, 然后用javaMail发出去的 ,
2 年多之前 回复
oElysion
oElysion 回复danielinbiti: 就是说, 我发送这个链接以邮件形式, 我收到的邮件中链接从&后面都没了,
2 年多之前 回复
danielinbiti
danielinbiti 回复oElysion: 你说的截断从哪看出来呢,参数接收页面呢?
2 年多之前 回复
oElysion
oElysion 回复danielinbiti: 因为brand参数没有实际意义所以可以看做没有,所以把&改成?也没问题, 但是如果再加参数, &后面就被截断了 ,
2 年多之前 回复
danielinbiti
danielinbiti 不理解你的截断什么意思,这链接是你本地页面吗?这参数只有打开的连接页面才能接受到这几个参数。你把你本地的参数接收代码贴出来,要不这截断指什么
2 年多之前 回复
oElysion
oElysion http://www.1k360.com/product/detail-10173.html?brand_id=10010&city_code=shenzhen 参数从10010开始被截断
2 年多之前 回复
danielinbiti
danielinbiti 回复oElysion: 你这不能发指什么?这页面链接后面是3个参数,&就是参数分割的。?是第一个参数 &是后面的参数 比如:http://xxxxx/abc?name=admin如果是再有一个参数,就再后面加&,第一个参数不能使用& http://xxxxx/abc?name=admin&password=admin
2 年多之前 回复
oElysion
oElysion https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=E8%82%A1%E5%B8%82%E5%85%A8%E7%BA%A2%E5%AE%B4%E5%8F%97%E7%83%AD%E6%8D%A7&rsv_idx=2 这个我找的百度的链接, &后面也不能发, 收到的是 https://www.baidu.com/s?cl=3
2 年多之前 回复
danielinbiti
danielinbiti 回复oElysion: 你实际的参数是什么样的,看看哪里写的不对,举例123没意义
2 年多之前 回复
danielinbiti
danielinbiti 回复oElysion: 你把你正确的参数写出来,www.baidu.com/XXX?oid=123?pid=123这么写,oid是获取不到的,只能获取pid
2 年多之前 回复
oElysion
oElysion 回复danielinbiti: 那我发送的邮件就和例子一样在&后面就截断了,因为前面的参数oid是没用的还没修改,所以我把后面的&改成了问号却可以发送了,www.baidu.com/XXX?oid=123?pid=123 这样就行
2 年多之前 回复
danielinbiti
danielinbiti 回复oElysion: xxx后面不需要,这个需要的,url参数传递的开始。中间这个&也不需要,这也是正常的,是两个参数的分隔,也就是有2个参数oid和pid。如果你oid=1&23&pid=123,前面一个&是你自己定义的字符,则需要转移
2 年多之前 回复
oElysion
oElysion www.baidu.com/XXX?oid=123&pid=123 就是说XXX后面的问号不需要转义后面带的任何符号都要转义是吗
2 年多之前 回复
danielinbiti
danielinbiti 回复oElysion: 文号也只能有一个呀,直接跟着的那个。如果是自己的,都得转义,要不再另一个页面接收都会有异常
2 年多之前 回复
oElysion
oElysion 那为什么链接中带了问号却可以过呢,
2 年多之前 回复
yuke198907
yuke198907   2015.07.17 16:38

用encodeURI试试呢?

oElysion
oElysion   2015.07.17 16:42

原来不是邮件发不过去, 是UMEditor没有获取到&后面的东西 ,

 <script type="text/plain" id="mailtext" name="mailtext" style="width:750px;height:221px;"></script>

 var mailtext = document.getElementById('mailtext').innerHTML;

并不能取到&后面的值

oElysion
oElysion 直接在UMEditor里把&换成%26
2 年多之前 回复
strutce
strutce   Ds   Rxr 2015.07.17 21:48

特性字符使用时用转义字符替代

cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.07.17 23:11
Csdn user default icon
上传中...
上传图片
插入图片