string 转 utf-8 java
时间: 2023-05-04 19:06:08 浏览: 193
在Java中将字符串转换为UTF-8需要使用getBytes方法。UTF-8是一种多字节编码,可以使用getBytes方法将字符串转换为对应的UTF-8字节数组。例如:
String str = "Hello World!";
byte[] utf8Bytes = str.getBytes("UTF-8");
此时,utf8Bytes就是存储字符串"Hello World!"的UTF-8字节数组。如果想要将UTF-8字节数组转换回字符串,可以使用String类的一个构造器,如下所示:
String newStr = new String(utf8Bytes, "UTF-8");
此时,newStr就是从UTF-8字节数组中还原出来的字符串。需要注意的是,由于UTF-8是一种变长编码,因此在进行编码和解码时需要指定正确的字符集,否则可能会出现乱码。
相关问题
java中string转utf-8中文乱码
在 Java 中,字符串类型 `String` 默认采用的是 Unicode 编码,而非 UTF-8 编码。如果你需要将一个字符串转换成 UTF-8 编码,可以使用 `getBytes()` 方法,如下所示:
```java
String str = "你好,世界!";
byte[] utf8Bytes = str.getBytes("UTF-8");
```
这个示例中,我们将字符串 `"你好,世界!"` 转换成 UTF-8 编码,并将结果保存在 `utf8Bytes` 数组中。需要注意的是,`getBytes()` 方法会抛出一个 `UnsupportedEncodingException` 异常,因此需要进行异常处理。
如果你将 UTF-8 编码的字节数据转换成字符串,可以使用 `String` 类的构造函数,如下所示:
```java
byte[] utf8Bytes = { -28, -67, -96, -27, -91, -67, -17, -68, -120, -26, -106, -121, -25, -87, -103, -23, -125, -92, -26, -100, -98, -17, -68, -124, -27, -101, -67, -17, -68, -125, -25, -123, -83, -27, -101, -106, -17, -68, -123, -28, -72, -122, -26, -120, -111, -17, -68, -125, -27, -101, -77, -24, -85, -84, -26, -106, -121, -25, -87, -103};
String str = new String(utf8Bytes, "UTF-8");
System.out.println(str);
```
这个示例中,我们将一个 UTF-8 编码的字节数组转换成字符串,并输出结果。需要注意的是,UTF-8 编码的字节数组可能包含多个字节表示一个字符,因此需要指定编码方式。如果不指定编码方式,将会使用默认的编码方式,可能导致中文乱码。
java json string 转utf-8编码 工具类
在Java中,可以使用`java.nio.charset.StandardCharsets`类提供的`UTF_8`编码来将JSON字符串转换为UTF-8编码。下面是一个示例工具类的实现:
```java
import java.nio.charset.StandardCharsets;
public class JsonUtils {
public static String convertToJsonString(String jsonString) {
byte[] bytes = jsonString.getBytes(StandardCharsets.UTF_8);
return new String(bytes, StandardCharsets.UTF_8);
}
}
```
使用该工具类,你可以将JSON字符串转换为UTF-8编码的字符串。例如:
```java
String json = "{\"name\":\"John\",\"age\":30}";
String utf8Json = JsonUtils.convertToJsonString(json);
System.out.println(utf8Json);
```
输出结果将是UTF-8编码的JSON字符串。
阅读全文