Jam*_*sen 19 html ruby escaping
CGI.escapeHTML是非常糟糕的,但CGI.unescapeHTML完全被塞了.例如:
require 'cgi'
CGI.unescapeHTML('…')
# => "…" # correct - an ellipsis
CGI.unescapeHTML('…')
# => "…" # should be "…"
CGI.unescapeHTML('¢')
# => "\242" # correct - a cent
CGI.unescapeHTML('¢')
# => "¢" # should be "\242"
CGI.escapeHTML("…")
# => "…" # should be "…"
Run Code Online (Sandbox Code Playgroud)
看来,unescapeHTML知道所有的数字代码加&,<,>,和".并且escapeHTML只知道最后四个 - 它没有做任何数字代码.我知道转义通常不需要那么强大,因为HTML将允许大多数字符的文字版本,除了CGI.escapeHTML知道的四个字符.但是,失业应该会更好.
有没有更好的工具,至少对于unescaping?
tit*_*ous 28
htmlentities gem应该可以解决这个问题:
require 'rubygems'
require 'htmlentities'
coder = HTMLEntities.new
coder.decode('…') # => "…"
coder.decode('…') # => "…"
coder.decode('¢') # => "¢"
coder.decode('¢') # => "¢"
coder.encode("…", :named) # => "…"
coder.encode("…", :decimal) # => "…"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4862 次 |
| 最近记录: |