【问题标题】:In the Yesod ecosystem, what is the best way to urlencode some Text?在 Yesod 生态系统中,对一些文本进行 urlencode 的最佳方式是什么?
【发布时间】:2019-03-01 22:02:21
【问题描述】:

我想对一些文本进行 url 编码(例如,将每个空格替换为 %20 等)。我找到了“HTTP” Network.HTTP.Base.urlEncode 并且可以使用它,但我想知道 Yesod 生态系统中是否还有其他通常使用的东西。

【问题讨论】:

  • 经过一番搜索,我发现“http-conduit” Network.HTTP.Conduit.parseUrl 使用来自“network”Network.URI 的 (escapeURIString isAllowedInURI)。这是其他Yesod'ers使用的吗?
  • Grep'ing 通过代码,我发现 Yesod.hs 中的 joinPath 使用 Network.HTTP.Types.encodePath/encodePathSegments 创建路径,其中包括百分比转义......这是为了从解析的路径对象(不是来自文本)创建百分比转义的 url。

标签: haskell urlencode yesod


【解决方案1】:

不幸的是,由于 URL 转义的复杂性,真正的答案是“视情况而定”。例如,路径段和查询字符串的百分比编码规则略有不同。

我不确切知道您要编码什么,但我建议坚持使用 http-types 包。一个起点是urlEncode,尽管该软件包中还有许多其他功能(例如@jamshidh 提到的encodePathSegments)值得一看。

【讨论】:

猜你喜欢
  • 2013-04-18
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 2020-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多