我正在使用网络爬虫(用Scala编写)从各种网站中获取一些内容,并且必须从JavaScript代码段中解码unicode表示法

Capitali%20d%u2019Europa


必须解码为

Capitali d’Europa


但是我找不到合适的工具来做到这一点。

最佳答案

您可以为此使用正则表达式。

def unicodeDecode(str: String): String = {
  val parts = """%u\d{4}|%\d\d|[^%]+""".r.findAllIn(str).map(s =>
    if(s.startsWith("%")) {
      Integer.parseInt(
        (if(s.startsWith("%u")) s.substring(2, s.size)
         else s.substring(1)), 16).toChar.toString
  } else s)
  parts.mkString
}

09-11 18:11
查看更多