기본적으로 BlackBerry는 CP037 encoding을 지원하지 않으므로 누구나 사용할 수있는 준비가 된 libaray가 있는지 알고있을 것입니다. 나는 온라인으로 한 번 보았고 나는 아무것도 볼 수없는 것 같습니다. 나 자신을 쓰는 유일한 선택인가? 누구든지 그런 일을하는 방법에 대한 조언이 있습니까?블랙 베리의 CP037 인코딩
답변
문자열 인코딩을 직접 작성하는 것은 인코딩이 256자를 넘지 않기 때문에 매우 간단합니다. table from Wikipedia을 switch 문으로 변환하고 결과 문자를 String으로 누적하면됩니다.
byte[] rawCP037data = getEbcdicDatabytes();
StringBuffer buf = new StringBuffer();
for(int i = 0; i < rawCP037data.length; i++) {
buf.append(convertCP037toUnicodeChar(rawCP037data[i]));
}
String decodedString = buf.toString();
char convertCP037toChar(byte b) {
switch (b) {
case 0x99:
return 'r';
case 0xAB: // upside down question mark
return 0x00BF;
// TODO! fill out the rest of the table here
}
}
응답 해 주셔서 감사합니다. 내가 필요한 건 원시 cp037 데이터를 얻을 수있는 것입니다, 당신의 코드에서 getEbcdicBytes 메소드와 같은 것입니다. 같은 생각이 효과가 있습니까? switch 문을 사용하여 바이트를 해당하는 Cp037 키로 변환하십시오. –
오, 그래서 다른 방향으로 가고 싶습니까? Java 문자열을 가져 와서 CP037로 변환 하시겠습니까? 문자열에서 문자를 반복하고 문자에서 바이트로 매핑하여 작성한 것과 반대 방향으로 진행할 수 있어야합니다. CP037로 표현할 수없는 문자를 읽을 수 있습니다.이 경우 응용 프로그램에 적합한 행동을 결정해야합니다. 일반적으로 '알 수없는'문자로 대체하거나 잘못된 입력에 대한 예외를 throw합니다 . –
좋아요. 감사. 나는 이것도 똑같은 일을해야하는 사람들에게 유용 할 것이라고 생각했다. –
- 1. 블랙 베리의 스레드로 작업하기
- 2. 블랙 베리의 ListField
- 3. 블랙 베리의 영구 저장소
- 4. 블랙 베리의 MDS-CS
- 5. 블랙 베리의 지속성 저장소
- 6. 블랙 베리의 공유 기능
- 7. 블랙 베리의 채팅 앱
- 8. 블랙 베리의 버튼
- 9. 블랙 베리의 관리자의 SetMargin
- 10. 블랙 베리의 전화 간격
- 11. 블랙 베리의 스크롤시 이미지를 동적으로로드하십시오.
- 12. 블랙 베리의 오디오 파일 변경하기
- 13. 블랙 베리의 자바 스크립트 콜백
- 14. 블랙 베리의 브라우저를 식별하는 방법
- 15. 블랙 베리의 텍스트 상자 확장
- 16. 블랙 베리의 qr 리더 예
- 17. 블랙 베리의 emailAddress 필드 확인
- 18. 블랙 베리의 스크롤 변경 리스너
- 19. 여러 이미지가있는 블랙 베리의 애니메이션
- 20. 블랙 베리의 푸시 메시지 수신기
- 21. 블랙 베리의 Hachoir Python 구현
- 22. 블랙 베리의 서버에 데이터를 게시하십시오
- 23. 블랙 베리의 볼륨 설정으로 리디렉션
- 24. 블랙 베리의 페이지/클래스 전환
- 25. 블랙 베리의 텍스트 파일에 쓰기
- 26. CustomButtonField를 블랙 베리의 배경으로 설정
- 27. 블랙 베리의 ListField 항목 구분
- 28. 블랙 베리의 화면에 위치 태핑
- 29. 블랙 베리 장치에 블랙 베리의 .cod 파일을 설치하는 방법
- 30. 블랙 베리의 배경 스레드에서 SMS를 보내려면 j2me
왜 EBCDIC를 사용해야합니까? –
내가 작업중인 클라이언트/서버 응용 프로그램입니다. 서버는 그것을 사용하여 일부 텍스트를 인코딩해야합니다. 서버 코드를 변경하는 것은 불가능하지는 않더라도 매우 어려울 것입니다. –