我偶然发现了这个页面https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda其中列出了一个打印字符串的示例,该字符串将在终端模拟器中解释为超链接
printf '\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'
这会导致输出
This is a link
在终端上,可单击以访问网站。
我试图通过我的 Kotlin 应用程序使用两者来复制同样的事情
println("""\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'""")
System.out.println("\\e]8;;http://example.com\\e\\\\This is a link\\e]8;;\\e\\\\\\n'")
但我得到的只是
\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'
\e]8;;http://example.com\e\\This is a link\e]8;;\e\\\n'
作为输出。
有谁知道如何在 Kotlin 中实现同样的目标?
Kotlin 不会解释常规字符串或三引号字符串中的转义序列(如 )。
您应该使用实际的转义字符,表示为 \u001B。
尝试这样的事情
\u001B]8;;http://example.com\u001B\\This is a link\u001B]8;;\u001B\\\n