URLEncoder.encode()导致空格变成+
时间: 2024-01-12 16:05:06 浏览: 39
URLEncoder.encode()函数将空格编码为"+",而不是"%20",这是因为在URL编码中,"+"和"%20"都可以表示空格。如果想要将空格编码为"%20",可以使用URLEncoder.encode(str, "UTF-8").replace("+", "%20")。这将先对字符串进行URL编码,然后将"+"替换为"%20"。
相关问题
URLEncoder.encode()导致空格变成+,除了替换还有什么方法
除了替换空格,还可以使用URLEncoder.encode()方法的第二个参数指定编码方式,例如UTF-8:
```java
String encodedString = URLEncoder.encode("string with spaces", "UTF-8");
```
这样就不会将空格转换成“+”或“%20”了。
Java使用URLEncoder.encode后使得符号“+”变成空格,如何保证解码后得到原文
在 Java 中,URLEncoder.encode() 方法会将符号 "+" 编码成空格,这是因为在 URL 中,空格应该被编码成 "%20",而加号则不需要编码。因此,如果需要保留加号,可以使用以下方法:
1. 在编码前将加号替换成其他字符(比如 "#"),然后在解码后再将其替换回来。
```java
String original = "hello+world";
String encoded = URLEncoder.encode(original.replace("+", "#"), "UTF-8");
String decoded = URLDecoder.decode(encoded, "UTF-8").replace("#", "+");
System.out.println(decoded); // 输出:hello+world
```
2. 使用 Base64 编码将原始字符串转换成字节数组,然后将字节数组转换成字符串时指定编码方式。
```java
import java.util.Base64;
String original = "hello+world";
String encoded = Base64.getEncoder().encodeToString(original.getBytes("UTF-8"));
String decoded = new String(Base64.getDecoder().decode(encoded), "UTF-8");
System.out.println(decoded); // 输出:hello+world
```
这两种方法都可以保证在编码和解码过程中不丢失加号。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)