Java 如何将八位字节字符串转换为可读字符串

Java 如何将八位字节字符串转换为可读字符串,java,Java,可能重复: 例如,我得到一个八进制字符串,如下所示: 3C3F786D6C2076657273696F6E3D22312E3302220656E636F64696E673D225554462D38223F3E3C53 6f6170456e763a456e76656c6f706520786d6c6e733a536f6170456e763d22687474703a2f2f7363 68656d61732e786d6c736f61702e6f72672f736f61702f656e76656c6f7

可能重复:

例如,我得到一个八进制字符串,如下所示: 3C3F786D6C2076657273696F6E3D22312E3302220656E636F64696E673D225554462D38223F3E3C53 6f6170456e763a456e76656c6f706520786d6c6e733a536f6170456e763d22687474703a2f2f7363 68656d61732e786d6c736f61702e6f72672f736f61702f656e76656c6f70652f223e3c536f617045 6E763A48656164657220786D6C6E733A7773613D22687474703A2F2F777772E77332E6F726722F32 3030352F30382F616472657373696E67223E3C7773613A46726F6D3E3C7773613A4164726573 733E43484E59442473C2F77773613A41647265733E3C2F77773613A46726F6D3E3C7773613A544 6F3E43433C2F77773613A546F3E3C7773613A416374696F6E3E68744703A2F2F6372632E73 6572766963652E62616E6B636F6D6D2E636F6D2F61627374616374696F6E2F61746F6D69632F74 6563686E696316C2E506572736F6E616C4372656469745265706F7274536572762F4661756C743C 2F77773613A416374696F6E3E3C7773613A4D65737361676549443E75726E3A7575759643A30303031


我知道底层文本是UTF-8编码,那么谁能提供一些方法来将这些八位字节转换为可读字符串呢?

我认为您需要先将其转换为字节数组,然后构建字符串,查看byte类,看看它是否有从两个十六进制字符中提取字节的方法,然后,只需迭代每两个字符并将其转换为字节

此链接可能很有用

请查看来自snmp4j的链接。这对你有帮助

OctetString octetString = new OctetString(java.lang.String);
octetString.toString();

尝试读取每两个字符,将其解析为基数为16的整数,并将其添加到字节数组中,然后构造:

publicstaticstringfromHex(strings)抛出UnsupportedEncodingException{
字节bs[]=新字节[s.length()/2];
对于(int i=0;i“你好,世界!”
您的字符串示例看起来像一个包含SOAP消息的XML文档。

回答如下: