需滿足三條件:
Motorola 承諾後續 SDK/裝置將完善此鏈路。
| 編譯指令 | 模擬器 UI 顯示 | Console 輸出 |
|---|---|---|
javac -O ... (預設 Big5) | ✅ 正常 | ❌ 亂碼 |
javac -encoding ISO8859_1 -O ... | ❌ 亂碼 | ✅ 正常 |
B1 D2 B0 CA)javac 預設以平台編碼 (Big5) 讀取 → 轉 Unicode (555F 5272) → 以 UTF-8 寫入 class 常數池 (E5 95 9F E5 89 B5)強制 javac 將原始碼視為單位元組 ISO-8859-1 (Latin-1) :
B1 D2 被視為兩個獨立字元 B1、D200B1、00D2C2 B1 C3 9200B1 00D2 → 直接輸出 → 終端機以 Big5 解讀 → 正確顯示「激」結論:真機大概率需加 -encoding ISO8859_1 才能正確顯示中文。模擬器行為可能與真機不同,以真機為準。
-encoding ISO8859_1 (或 UTF-8 配合 KVM 修補)| 工具 | 功能 | 啟動方式 |
|---|---|---|
| J2ME Emulator | 裝置模擬器,支援多款 iDEN/GSM 手機皮膚 | runEmul, runMotoi1000, runStarTac 等批次檔 |
| Bytecode Verifier | 驗證 class 檔位元組碼安全性、堆疊對應表正確性 | 編譯流程自動呼叫 preverify |
| Configuration Editor | 建立/修改裝置描述檔 (.props),自訂螢幕、按鍵、記憶體參數 | 獨立 GUI 工具 |
SDK 安裝目錄 demo/midlets/ 包含:
Bounce, PaddleBall, ScribbleFontDemo, GraphicsDemo, RecordStoreDemo, UDPReceiveAlertTest, ChoiceGroupTest, DateFieldTest, FormTest, GaugeTest, KeyEventsTest, TextBoxTest, TextFieldTest, TickerTest建議逐一編譯運行,閱讀原始碼,掌握 Motorola 平台慣用模式。
Motorola iDEN 系列作為早期 Java 手機先鋒,其 SDK 暴露了 J2ME 早期生態的典型痛點:除錯鏈路不完善、中文編碼無標準化、IDE 整合碎片化。開發者以 -encoding ISO8859_1 破解中文、以 System.out.println 湊合除錯、以批次檔驅動模擬器,這些「土法煉鋼」的經驗,倒逼出後來 WTK 2.x 統一建構、EclipseME 整合 IDE、MIDP 2.0 強制 HTTPS/簽名/安全域的標準化路徑。回望這段歷史,能更深刻理解現代 Android Studio/Gradle/ADB 工具鏈設計的每一個細節初衷。