繁体   English   中英

清理URL链接的Unicode字符串(Ruby / Rails)

[英]Sanitizing Unicode strings for URL slugs (Ruby/Rails)

我有UTF-8编码的帖子标题,我希望在子标题中使用适当的字符显示。 一个示例是Amazon Japan的URL在此处

如何使用Ruby(或Rails)将任意字符串转换为这样的安全URL标记?

(有一些相关的 PHP文章,但对于Ruby我找不到任何东西。)

这里阅读看来这是一个解决方案:

require 'open-uri'
str = "\x12\x34\x56\x78\x9a\xbc\xde\xf1\x23\x45\x67\x89\xab\xcd\xef\x12\x34\x56\x78\x9a".force_encoding('ASCII-8BIT')
puts URI::encode(str)

这是open-uri的文档 这是有关utf-8编码的url模式的信息

编辑:更多地研究了一下,我发现编码只是URI.escape的别名, URI.escape记录 以下文档中的示例:

require 'uri'

enc_uri = URI.escape("http://example.com/?a=\11\15")
p enc_uri
# => "http://example.com/?a=%09%0D"

p URI.unescape(enc_uri)
# => "http://example.com/?a=\t\r"

p URI.escape("@?@!", "!?")
# => "@%3F@%21"

让我知道这是您要找的吗?

编辑#2: 根据 ryan bates在friendlyid上 的评论 ,我很感兴趣,并且继续看了一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM