有没有办法在java中显示ASCII符号?

时间:2017-01-13 17:55:58

标签: java byte ascii symbols pcap

我正在查看捕获文本文件,它显示从ASCII中的十六进制值获取的符号。在Notepad ++中,它还显示来自00 to 1F的符号,它们由this webpage很好地映射出来,您可以找到包含扩展值及其十六进制和十进制数here的完整ASCII表。我知道它们本来是控制字符,但有没有办法在java中显示它们?

以下是文件中显示的内容示例 enter image description here

我可以在我的java程序中显示所有其他ASCII符号,但不能显示带有STX NUL EOT SOH等符号的那些符号,这些符号来自0 to 31的十进制值,{十六进制{1}}。

以下是来自here的ASCII表的快照 enter image description here

以下是控制台中显示内容的控制台代码段 enter image description here

这是我用来打印出来的代码。

00 to 1F

非常感谢任何帮助!!

1 个答案:

答案 0 :(得分:1)

这里的问题是您将值显示为char,因此它将由控制台自动解释为具有特定显示方式的字符。

如果要显示与记事本视图匹配的内容,您可能必须使用表格来显示不可打印的字符,如下所示:

private static final String[] myTable = {"NUL", "SOH", ... };
public String getCharAsString(char value) {
    if(value <= (char) 0x1F) {
        return myTable[value];
    } else {
        return "" + value;
    }
}