ASCII 문자열을 HEX로 변환하려고합니다. 그러나 어떤 이유로 HEX 값 대신 ASCII 값을 돌려줍니다.
그래서 여기에 내 코드가 있습니다.
public String toHex(String strToConvert) {
ByteBuffer bb = ByteBuffer.wrap(strToConvert.getBytes("UTF-8"));
StringBuilder sb = new StringBuilder();
while (bb.hasRemaining()) {
sb.append(bb.get());
}
return sb.toString();
}
함수 호출은 다음과 같이 이루어집니다 toHex("A");
.. 내가 도대체 뭘 잘못하고있는 겁니까?
코드에는 버퍼에서 얻는 바이트를 16 진수로 변환하는 것이 없습니다. sb.append(int)
호출 하는 메서드는 16 진수가 아닌 10 진수로 변환합니다. 한 가지 해결책은 다음과 같습니다.
sb.append(String.format("%02X", bb.get()));
메서드를 "ASCII to hex"라고 부르지 만 실제로 ASCII를 사용하는 것은 아닙니다. UTF-8을 사용하고 있습니다. 이것은 ASCII와 정확히 동일하지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다