繁体   English   中英

Java 从字符串转换为char到正确的字节0-255

[英]Java converting to a char from a string into the correct byte 0-255

再会,

我正在将蓝牙信息传输到我的 Android 应用程序。 此信息通过标准蓝牙聊天应用程序示例以字符串的形式出现。

我正在尝试将字符串中的字符转换为应用程序使用的字节。

在 java 中使用(byte)readMessage.charAt(k)时,字节的值最多为 127。我读过字符是 16 位,字节是 8 位。 我不明白即使 char 中的“数字”小于 255,它也无法正确转换。

如何将字符串转换为正确的字节,以便接收蓝牙连接传入的 0-255 串行数据。

for(int k = EEPROM_start ; k < EEPROM_start + 60 ; k ++)
{                                                                    
  EEPROM[k] = (byte)readMessage.charAt(k);
}

预期成绩

如果我能得到以字节为单位的值(0-255),那将是很好的,甚至是(-128:127)我将能够处理它。

您假设您的 String 来自一个简单的字符集,例如 ISO-8859-1,其中每个字符都由一个字节编码。 但情况并非总是如此。 有些字符集将每个字符存储为 1 到 4 个字节。 UTF-8、UTF-16、UCS-2 等。如果您的传入信息可以用 ISO-8859-1 字符集编码(即您的字符串仅包含拉丁字母和标点符号),那么为了将您的字符串转换为每个字节都相关的字节到一个字符:

byte[] myBytes = myString.getBytes(StandardCharsets.ISO_8859_1);

见方法String.getBytes(Charset charset); 和 class 标准字符集

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM