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

Haskell.Network.URI.outside US-ASCII字符,haskell,encoding,uri,Haskell,Encoding,Uri,我在构造URI以通过库发出http请求时遇到了问题 例如: 导入网络.URI parseURI "http://мтс.рф" 或 在这两种情况下,我什么都没有。 我没有在文档中找到解决方案 我试图解码/转义非ASCII字符,但没有帮助 谢谢 第二种情况可以通过utf8字符串包解决: import Network.URI import Codec.Binary.UTF8.String uri = parseURI $ (escapeURIString isUnescapedInURI . en

我在构造URI以通过库发出http请求时遇到了问题

例如:

导入网络.URI

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

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

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


谢谢

第二种情况可以通过utf8字符串包解决:

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

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