2013-02-19 5 views
0

바이트 배열을 BlackBerry의 문자열로 변환하려면 어떻게해야합니까?바이트 배열을 문자열로 변환

나는(). 사람이 블랙 베리에 대한 읽을 수있는 형식이 문자열을 얻을 수 있도록 할 수 toString을 호출 할 때 내가 [[email protected]을 얻고있다

new String(bytearray,encoding type); 

을 사용했다?

+0

http://stackoverflow.com/questions/6684665/java-byte-array-to-string-to-byte-array – Signare

+3

** ** 귀하의 바이트에 대한 값 [B @ fb5955d6] 정렬? 디버거에서보고 있습니까? 그것을 밖으로 인쇄? 사용하려고 시도한 코드 중 일부를 보여주십시오.'새로운 String (byte [], encoding)을 시도했다면 * which * encoding을 사용 했습니까? – Nate

답변

0

이 시도 -

byte[] byteArray = new byte[] {87, 79, 87, 46, 46, 46}; 

String value = new String(byteArray); 

이 당신에게 값을 줄 것이다 'WOW를 ...'

0

당신은 우리에게이 바이트 데이터에서 오는 , 또는 무엇 값을 표시하지 않습니다 당신은 그것이 있기를 기대합니다. 그래서, 내가 할 수 있을지 모르겠다 디버깅 문제. 그러나 희망이 도움이 :

다음은 당신이 단순히 바이트 배열에 toString()를 호출 할 때 [[email protected]가 인쇄보고있는 이유는 그 default implementation of toString() 것이다 단지 print out a short code for the array data type (예 byte) 및 주소 같은 무언가 (당신이 경우 C/C++에 익숙하다.) 특히 자바에서 당신이 정말로 원하는 바가 거의 없다. 당신의 (a byte[] 등) 이진 데이터가있을 때 당신은 데이터가 String, 또는 ButtonField, 또는 FuzzyWarble 될 것을 의도 여부를

는, 자바는 알 수 없습니다. 따라서 개체의 주소보다 인쇄하는 것이 더 의미가 없습니다.

당신이 String 데이터를 인쇄하려면

, 당신은 byte[]String 객체를 생성하는 것이 아니라 기본 character encoding을 사용하거나 필요, 그렇게하기 위해, 또는 당신이 원하는 어떤 인코딩을 지정해야합니다. "UTF-8""ASCII"은 두 가지 인기있는 인코딩입니다. 이 코드를 실행하는 경우

try {   
    byte[] bytes = new byte[] { 100, 67, 126, 35, 53, 42, 56, 126, 122 }; 
    System.out.println("bytes are " + bytes.toString()); 
    String s = new String(bytes, "UTF-8"); 
    System.out.println("string is " + s); 
    } catch (UnsupportedEncodingException e1) { 
    } 

난 3b50e2ee
문자열 ~ # 5 * 8 ~ Z

As를 직류 @이

바이트 [B이다 볼 당신은보고, 주소는 내가 보는 것과 다른 것을 볼 수 있습니다 (왜냐하면 나는 다른 기계에서 달리기 때문에 dif ferent 메모리 레이아웃). 그러나 String으로 변환하면 "UTF-8" 인코딩으로 표시되는 것을 볼 수 있습니다.

어쩌면 그게 맞는 가치일까요?

다시 말하지만 바이너리 데이터의 출처 또는 그 위치를 알 수는 없지만 위 코드는 바이트 배열을 문자열로 변환하는 일반적인 방법이라고 말할 수 있습니다.

관련 문제