0

リンクに含めるために (スペース : / &) などの特殊文字をエスケープしようとしています。次のことを試しましたが、「#」文字のみをエスケープします。

<a href="https://twitter.com/share?text=<%=location.title.html_safe%><%=h root_url(:anchor => "_lat=#{location.latitude}&long=#{location.longitude}&zoom=17").html_safe%>">Tweet</a>

<%=CGI.escapeHTML location.title%><%=CGI.escapeHTML root_url(...)%>root_url のスペースや http:// をエスケープしないことも試しました

ありがとう。

編集 ありがとう Sirupsen、これが私がやったことです。空白が + としてエスケープされていることを除いて、出力は正しいです。それが最適かどうかはわかりません...

<!-- added var to make it more readable-->
<% tweetLink = root_url(:anchor => "_lat=#{location.latitude}&long=#{location.longitude}&zoom=17")%>
<a href="https://twitter.com/share?text=<%= URI.encode_www_form_component "#{location.title} #{tweetLink}"%>">Tweet</a>

出力は location.title ="http:// test in title" に基づいて正しいです:

https://twitter.com/share?text=http%3A%2F%2F+test+in+title+http%3A%2F%2Flocalhost%3A3000%2F%23_lat%3D43.82864423876971%26long%3D-79.36823174357414% 26zoom%3D17と twitter はそれを受け入れます。

ご協力いただきありがとうございます

4

0 に答える 0