如何在中心创建带有标签的 Android Uri

How to create Android Uri with hashtag in the center

我有以下要构造的 Uri。

https://www.example.com/sub/#/action?firstparam=123456&secondparam=abcdef

我使用 Android Uri.Builder 构造 Uri

Uri uri = new Uri.Builder().scheme(HTTPS_SCHEME).authority("www.example.com").appendPath("sub").appendPath("#").appendPath("action")appendQueryParameter(
            "firstparam", first).appendQueryParameter("secondparam", second).build();

但主题标签已编码,将导致以下 Uri

https://www.example.com/sub/%23/action?firstparam=123456&secondparam=abcdef

如何预防?我尝试使用 fragment 但它在 Uri 的末尾添加了主题标签。

这就是 Uri.Builder 的工作原理。它对 non-safe URL 个字符进行编码,这些字符的十六进制值具有特殊含义。在您的情况下 # 被编码为 %23

要防止这种使用:

builder.appendEncodedPath("#")