有没有办法在rails链接助手中使用ASCII字符代码?

时间:2011-11-23 18:00:48

标签: html ruby ruby-on-rails-3 unicode

此:

<%= link_to "My Trademark &153;", trade_mark_path %>

生成

"My Trademark &153;"

当我需要它时:My Trademark™

无论如何在URL帮助器中使用ASCII代码?我总是可以手动生成链接,但这真的很难看。

3 个答案:

答案 0 :(得分:4)

正如Phrogz所说,理想的前进方式是在源代码中包含原始字符,确保将其保存为正确的编码。

如果由于平台或文本编辑器的限制而无法执行此操作,请使用字符串文字转义\u而不是HTML编码来直接获取所需字符:

<%= link_to "My Trademark\u2122", trade_mark_path %>

商标字符为U + 2122或十进制8482. 153是Windows代码页1252(西欧)中的字节编码,因此字符引用&#153;不起作用。实际上,由于传统的浏览器行为拙劣(在HTML5中标准化),它在非XML HTML方言中有所作为,但你不应该依赖它。

答案 1 :(得分:3)

最简单的答案不是使用HTML实体,而是使用具有文字Unicode字符的Unicode源代码文件,例如:实际上放了:

<%= link_to "My Trademark™", trade_mark_path %>
在你看来

。但是,如果必须,您可以这样做:

<%= link_to("My Trademark&trade;", trade_mark_path).html_safe %>

禁用Rails的自动HTML转义。

请注意,对于ASCII值128-255使用十进制实体&#...;是一个坏主意,因为这些通常依赖于非标准的代码页,除非您某些发送的是匹配的HTML的正确编码。作为you can see,商标符号的Unicode值实际上是&#8482;

答案 2 :(得分:3)

您可以使用raw方法并写:

<%= link_to raw("My Trademark &153;"), trade_mark_path %>

http://apidock.com/rails/ActionView/Helpers/OutputSafetyHelper/raw