java - 编码(并重定向)到在 Java 中具有特殊字符的 URL

标签 java unicode redirect url-encoding

我在这样的字符串对象中有一个 URL:

http://bhorowitz.com/2011/03/24/bubble-trouble-i-don't-think-so/

URL 可能包含也可能不包含需要编码的 unicode 字符。例如,上面的链接应该转换为:

http://bhorowitz.com/2011/03/24/bubble-trouble-i-don%e2%80%99t-think-so/

在我重定向到它之前。

如何正确转义所有特殊字符(例如 unicode),同时保持 URL 结构的其余部分不变?是否已经有东西可以做到这一点,或者我需要自己动手?

编辑:棘手的部分是我只需要转义无效字符,同时保持 URL 的其余部分不变(例如 http://应该保留为 http://并且不应该转义)。据我所知,URLEncoder 不允许我这样做。

最佳答案

我想这就是您真正要找的:

new URL(yourURLString).toURI().toASCIIString();

它只会对所需的字符进行编码,而不会影响其他所有字符。

关于java - 编码(并重定向)到在 Java 中具有特殊字符的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5452649/

相关文章:

java - 仅使用 @Transactional 时,持久性单元未启动

java - toString() 方法打印空值

c# - 文件名 : Why? 中的 0x202A

c++ - 将 unicode 字符串转换为字符串

php - session 和PHP重定向不起作用

nginx - 307 临时重定向不起作用 nginx 1.18

redirect - 如何在第三个应用程序中将声音从某些应用程序重定向到某些设备?

java - 使用MikePenz抽屉,在哪里可以处理onDrawerOpen、关闭软键盘

java - 使用反射在运行时推断 java 泛型参数

linux - ASCII 转义序列和控制字符配对是标准的一部分吗?