由於默認情況下BlackBerry不支持CP037 encoding,任何人都不知道是否有任何現成的libaray可以使用?我在網上看了一下,看起來什麼都看不到。是自己寫一個唯一的選擇嗎?有沒有人有關於如何做這樣的事情的任何提示?黑莓中的CP037編碼
回答
編寫自己的字節 - >字符串解碼器看起來非常簡單,因爲編碼不超過256個字符。只需將table from Wikipedia轉換爲switch語句,並將結果字符累加到字符串中。
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? – 2012-07-15 17:51:24
哦,所以你想走向另一個方向?取一個Java字符串並將其轉換爲CP037?你應該能夠迭代字符串中的字符並將字符映射到字節,這與我所寫的相反。你可以閱讀一個不能由CP037表示的字符,在這種情況下,你必須決定你的應用程序的正確行爲 - 通常用一些「未知」字符替換它,或者爲無效輸入引發異常。 – 2012-07-15 22:20:20
太好了。謝謝。我也發現這對任何需要做同樣事情的人都有用 - http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/EBCDIC/CP037.TXT – 2012-07-16 07:53:38
- 1. 字符編碼CP037
- 2. 黑莓1251編碼
- 3. HTML 5編碼在黑莓
- 4. 黑莓URL編碼器
- 5. 如何用黑莓編程實現黑莓手機中的IMSI號碼
- 6. 數據轉換和編碼CP037
- 7. 關閉黑莓的代碼
- 8. 黑莓6黑莓5
- 9. 黑莓設計編輯
- 10. 編程黑莓 - Timer類
- 11. 黑莓套接字編程
- 12. 黑莓編程和Java ME
- 13. 黑莓條碼掃描庫?
- 14. 黑莓
- 15. 黑莓
- 16. 黑莓
- 17. 黑莓
- 18. 使用編碼在黑莓級聯中顯示啓動畫面
- 19. 黑莓的CustomTextbox
- 20. 黑莓的HashMap
- 21. 黑莓鱈魚簽約無黑莓JDE
- 22. 更快/更簡單的黑莓編程?
- 23. 更高級的黑莓編程?
- 24. 黑莓機調試不顯示字符串中的黑莓值
- 25. 黑莓:黑莓應用程序中的推送通知
- 26. 編碼爲Base64格式的文件 - 黑莓/ J2ME
- 27. 關於重新編譯黑莓代碼的運行時感染
- 28. 退出黑莓瀏覽器的代碼
- 29. ZXing Android的黑莓手機源代碼
- 30. 黑莓主屏上的代碼
爲什麼您需要使用EBCDIC? – 2012-07-14 07:20:04
這是我正在開發的客戶端/服務器應用程序。服務器需要使用它編碼一些文本。如果不是不可能的話,更改服務器代碼將會非常困難。 – 2012-07-14 07:29:23