我在java代码中放置if语句,以查明pcap文件是否包含某些字符串,如果是,那么在我的其他情况下不显示该字符串但我仍在我的字符串中其他条件。谁能告诉我可能出现的问题呢?
我的代码
String a=new String(packet.data);
if(a.contains("image/"))
{
}
else
{
System.out.println(a);
}
答案 0 :(得分:4)
假设packet.data
是一个字节数组,你没有指定这些字节应该如何解释为文本的编码 - 这几乎总是一个错误。它将使用系统默认编码,这恰好恰好是正确的编码。
网络数据包本质上是二进制数据;如果要从中提取 text ,则需要了解其结构 - 包括要使用的编码。虽然您可以盲目地将所有网络数据包视为ASCII数据,但它会给您不恰当的结果。
答案 1 :(得分:0)
难道你不能通过像packet.getBuffer()
左右那样检索你的缓冲区吗?