java - 来自字符串的字节数组

标签 java

我已将包含外来字符“昼”的字符串转换为字节数组。 字节数组可以存储-128到127之间的值,因此对应的值已存储为3个字节 ---> -26,-103,-99。

这是转换代码:

String str = "晝"; 
byte[] b = str.getBytes(); 

for(byte bt : b) 
    System.out.println(bt); 

String str1 = new String(b);
System.out.println(str1);

您能否澄清一下外来字符的这 3 个字节是如何计算的

最佳答案

昼为U+665D。看起来你转换它的时候,你把它转换成了UTF-8。 UTF-8 是 Unicode 字符的可变长度编码。 [U+0800, U+FFFF] 中的字符转换为 3 个字节。

根据this converter ,U+665D在UTF-8中是E6 99 9D(十六进制是,十进制是230 153 157,稍后会需要)。因为一个字节是-128到127,所以大于127的值会显示为减去256的数字,所以以字节来说,230 153 157就是230-256 153-256 157-256,或者-26 -103 -99,也就是你看到了。

关于java - 来自字符串的字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34478437/

相关文章:

java - java中的简单加密

java - 如何在同一个jar中设置Class-Path indict jar

java - 如何在Docker容器中部署Spring应用程序?

java - 将 map 转换为数据类

java - EclipseLink 与 Spring - 无法持久化到 Db

java - 如何通过java访问AWS API端点

java - 分页逻辑怎么写?

java - 如何在 Java 中将非特殊字符编码为 HTML 实体

java - 我如何将 "import"java 文件转换为另一个文件

javascript - 当我从自动化调用时,Js 页面未在 Chrome 中加载