java字符串中的特殊字符
我正在寻找在java字符串中插入特殊的1字节字符的解决方案,如java字符串中的特殊字符,java,arrays,string,char,byte,Java,Arrays,String,Char,Byte,我正在寻找在java字符串中插入特殊的1字节字符的解决方案,如0xFE,0xFF(>127) 我需要使用字符串而不是字节数组,因为类的方法只需要字符串类型 我在字符串={0x07 0xAA 0x03 FF}中需要什么。是的,它是用于设备控制的特殊字符 我尝试使用字符串constructur作为: byte[] arr = {0x07, (byte) 0xAA, 0x03, (byte) FF}; String s = new String(arr, "UTF-8"); //utf-8用于1字
0xFE,0xFF(>127)
我需要使用字符串而不是字节数组,因为类的方法只需要字符串类型
我在字符串={0x07 0xAA 0x03 FF}
中需要什么。是的,它是用于设备控制的特殊字符
我尝试使用字符串constructur作为:
byte[] arr = {0x07, (byte) 0xAA, 0x03, (byte) FF};
String s = new String(arr, "UTF-8");
//utf-8用于1字节字符,我也尝试了ascII,但结果是一样的
数组中所有字符的最大值都是char的127(dec),但在它给出奇怪的结果后,比如字符串中增加了1或2个字节,当然这是因为字节类型的最大值是127。但是如何解决这个问题呢??我需要帮助
我如何理解我不能将char[]添加到字符串构造函数中您的问题有一部分是不正确的。UTF-8仅将
[32126]
范围内的可打印ASCII字符存储为单个字节(超出此范围,每个字符有2个甚至3个字节),即使编码长度通常为256字节。由于在Java中,默认情况下所有字符串都自动存储并打印为UTF-8,因此打印时它们将保留超过1字节
您需要的是一种编码,在访问字节时将所有[1256]
第一个字节存储为单个字节。例如,使用当前代码:
byte[] arr = {0x07, (byte) 0xAA, 0x03, (byte) 0xFF};
String s = new String(arr, "UTF-8");
System.out.println(s.getBytes().length); // This prints 8
System.out.println(s.getBytes("UTF-8").length); // This prints 8 as well (since the default is UTF-8)
System.out.println(s.getBytes("Windows-1252").length); // This prints 4
(也称为)或是两种非常著名的编码。“我如何理解我不能将char[]添加到字符串构造函数”你是什么意思?
String
似乎有一个。这就是你要找的吗?使用Unicode转义:String s=“\u0007\u00AA\u0003\u00FF”代码>是的,我的意思是我如何知道字符类型需要2个字节,对吗?所以,char 0xFF将被添加到字符串中,比如0x00 0xFF。。但我需要一个字节,在你们的帮助下,我找到了解决方案!问题是字符集!!!需要ISO-8859-1char[]arr={0x07,0xAA,0x03,0xFF};标准写入字符串(新字符串(arr),“ISO-8859-1”);portMonitor IRP_MJ_写入序列0的结果成功长度4:07 AA 03FF@Kost很高兴我能帮忙。:)