밤과라임
3k
2019-03-22 11:21:51
4
431

String - getByte 한 것과 String -> hexString -> byte 변환한 것의 차이가 있나요??


 소켓 통신 프로토콜 환경에 맞는 데이터 구축 중에

 지금까지는 string -> getbyte를 통해 변환하여 송 수신하였는데

 hex값의 형태로 해달라는 요청이 있어

 구글링 해보니 string -> hexString -> byte[] 에 담는 작업들이 있더군요.

 이러니 저러니 해도 똑같이 System.out.pring(byte[0]) 값은 

 10진수로

 System.out.printf("%02x ", bytes[0]);

 값은 16진수로 똑같이 나오는데

 차이가 있나요???

 

0
0
  • 답변 4

  • jeroschoi
    62
    2019-03-22 11:47:08

    인코딩 문제로 인한 요청이 아닐까 합니다

    0
  • 밤과라임
    3k
    2019-03-22 13:07:55

    @jeroschoi

    어차피 바이트로 변환되었고, 출력할때 포맷을 설정하면 같은 값이 나오는데

    차이가 있나요???

    0
  • jeroschoi
    62
    2019-03-22 16:08:20

    경험적으로는 2가지정도로 생각해 볼 수 있는데

    1> TARGET 쪽 소켓이 자바가 아닐 수도 있을꺼 같고

    2> TARGET 쪽에서 사용하는 서버의 인코딩값이 Source쪽에서 사용하는 인코딩과 다를 수 있을것 같습니다

    예로 적어두신 String에서 BYTE 배열 변환시 들어갈 수 있는 Encoding에 따라 한글이나 기타특수문자의 경우는 BYTE의 값이 틀려 질 수 있어서 이지 않을까 하는 추측입니다.


    0
  • 밤과라임
    3k
    2019-03-24 12:56:19

    @jeroschoi

    감사합니다. 제가 느끼기론 일반적인 경우는 아니고 특수한 경우에서의 요청인가보군요.

    인코딩의 예외를 고려해보겠습니다.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.