Haskell.Network.URI.outside US-ASCII字符

时间:2011-03-27 10:58:39

标签: haskell encoding uri

我有问题构建URI以通过HTTP库发出http请求。

例如:

import Network.URI

parseURI "http://мтс.рф"

parseURI "http://maps.googleapis.com/maps/api/geocode/json?address=Титова+42&sensor=false"

在这两种情况下,我都“没有”。 我没有在文档中找到解决方案

我试图解码/转义非ASCII字符,但没有帮助。

感谢。

1 个答案:

答案 0 :(得分:1)

可以使用utf8-string包解决第二种情况:

import Network.URI
import Codec.Binary.UTF8.String
uri = parseURI $ (escapeURIString isUnescapedInURI . encodeString)
        "http://maps.googleapis.com/maps/api/geocode/json?address=Титова+42&sensor=false"

main = print uri

首先,从gnuidn包中尝试Data.Text.IDN.IDNA.toASCII。