接续自 Rich Text Editor 中粘贴的 URL 未正确转义波浪号字符 的讨论:
重现步骤:
我在编辑器中粘贴了上面的 URL:
https://frinklang.org/fsp/solve2.fsp?equations=a+%3D+3+b+%2B+c&solveFor=&f=&ev=on&sel_a=S&val_a=&sel_b=S&val_b=&sel_c=L&val_c=299792458+m+s%5E-1&resultAs=
点击链接后应有的正确响应是:
但 Discourse 渲染后的该 URL 是:
https://frinklang.org/fsp/solve2.fsp?equations=a%2B%3D%2B3%2Bb%2B%2B%2Bc&solveFor=&f=&ev=on&sel_a=S&val_a=&sel_b=S&val_b=&sel_c=L&val_c=299792458%2Bm%2Bs%5E-1&resultAs=
注意 %2B 替换了 + 字符。这导致失败,并产生以下结果:
测试超链接工具:
Discourse-Made-Hyperlink
Discourse 链接工具渲染的 URL:
https://frinklang.org/fsp/solve2.fsp?equations=a%2B%3D%2B3%2Bb%2B%2B%2Bc&solveFor=&f=&ev=on&sel_a=S&val_a=&sel_b=S&val_b=&sel_c=L&val_c=299792458%2Bm%2Bs%5E-1&resultAs=
这也会失败,显示如下:
我不完全确定哪里出了问题,但我认为问题在于 + 字符,它本应是空格,却被错误地处理成了字面上的加号。
在 URL 中使用 + 代表空格是符合标准的,所以这可能也影响了以这种方式使用 + 字符的其他网站/系统。
1 个赞
其他我认为相关,但现在不这么认为的问题:
https://meta.discourse.org/t/links-produced-by-the-composer-link-modal-break-when-they-contain-a-27/376782/6
sam
(Sam Saffron)
3
是的,这是一个棘手的问题,我认为只有 oneboxer 和前端存在错误:
https://frinklang.org/fsp/solve2.fsp?equations=a+%2B+b&solveFor=&f=&ev=on>
与:
https://frinklang.org/fsp/solve2.fsp?equations=a+%2B+b&solveFor=&f=&ev=on>
与:
https://frinklang.org/fsp/solve2.fsp?equations=a+%2B+b&solveFor=&f=&ev=on
我这里有一个修复方案,但正如您从相关话题中看到的,这非常复杂™,多年来这个领域出现过很多错误。
1 个赞
感谢您的关注!
您可以相信 Frink 语言的创建者 Alan,他能以 100% 符合标准的方式揭示任何错误。这是他的专长。
(顺便说一句,如果您需要为任何科学或工程应用进行极端的单位正确性验证,请务必了解一下 Frink。)
1 个赞