【问题标题】:Handling special characters in domain names (without IDN)?处理域名中的特殊字符(没有 IDN)?
【发布时间】:2011-06-28 20:20:28
【问题描述】:

我正在使用 URI 类来拆分字符串 url。

getHost()方法在有特殊字符时返回null。

如:http://✪df.ws/g44

It was suggested to use the IDN class to work around this。但是,该类仅适用于 Android API 级别 9 及更高版本,即 2.3 及更高版本。

没有 IDN 类还有其他方法吗?

我希望能够将字符串 url 分解成各个部分并能够处理现代 url。

谢谢

更新 看起来 WebView 也不支持这些类型的 url。所以,看起来我需要找到一种方法来支持或转换这些 url 以用于 2.3 之前的设备。

有没有办法在没有 IDN 类的情况下转换这些 url?

【问题讨论】:

    标签: java android url utf-8 idn


    【解决方案1】:

    getHost() = 忽略从开始到 :// 的所有内容,然后捕获所有内容,直到得到一个斜线。

    这样不行吗?

    【讨论】:

    • 我想这会奏效,我尝试使用 URI 方法,因为我认为它们是最安全的,但我想这至少适用于主机。
    • @littleFluffyKitty:您可以通过对以下标记应用相同的逻辑使其与其他段一起使用:://:@/?、@ 987654326@, #.
    • 谢谢,这样就可以了。但是,我更新了我的问题(它似乎没有足够的不同来保证一个单独的问题),因为看起来我确实需要一种方法来支持/转换这些字符。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2012-11-14
    • 2012-09-18
    • 2017-07-12
    • 1970-01-01
    相关资源
    最近更新 更多