核心解法:Unicode 資料型別 + 正確輸入法
步驟 1:資料庫欄位型別設為 Unicode
ALTER TABLE YourTable ALTER COLUMN YourColumn NVARCHAR(50); -- 或 NCHAR
原理:`NCHAR`/`NVARCHAR` 使用 UCS-2(雙位元組)儲存 Unicode 字元,可完整保留上標數字 `³` (U+00B3)。`CHAR`/`VARCHAR` 為非 Unicode,依編碼頁不同可能導致符號遺失或亂碼。
| 型別 | 儲存內容 | 最大字元數 | 適用場景 |
| NCHAR / NVARCHAR | Unicode (雙位元組) | 4,000 | 含中文、特殊符號、多語系 |
| CHAR / VARCHAR | 非 Unicode (單/雙位元組視編碼頁) | 8,000 (英) / 4,000 (中) | 純英數、節省空間 |
步驟 2:取得 m³ 字串並寫入
兩種主流辦公軟體產生 `m³` 的方法:
Excel(推薦,格式保真)
- 鍵盤輸入 `m`
- 小鍵盤按住 Alt + 輸入 0179 (或 179,視系統碼頁) → 產生 `³`
- 或:插入 → 符號 → 找到上標 3 → 插入
- 複製該儲存格內容 → 貼上至應用程式輸入框(TextBox、DataGridView 等) → 存入資料庫
✅ 優點:從 Excel 複製到 Word/記事本/瀏覽器,`m³` 格式**不會消失**。
Word(僅限 Word 內部使用)
- 輸入 `m`
- Ctrl + Shift + = 開啟上標模式
- 輸入 `3`
- 再按一次 Ctrl + Shift + = 恢復正常
⚠️ 缺點:從 Word 複製到 Excel,上標格式**會消失**變成 `m3`。
步驟 3:前端顯示驗證
- Web 應用:確保頁面 ``,資料庫連線字串含 `CharacterEncoding=UTF-8`(JDBC)或無特殊設定(ADO.NET 預設 Unicode)。
- WinForm/WPF:直接繫結 `NVARCHAR` 欄位,控制項字型支援 Unicode 即可正確渲染 `m³`。
常見坑點排查
- 資料庫欄位為 `VARCHAR` → 符號變 `?` 或 `m3` → **改為 `NVARCHAR`**。
2. 連線字串強制指定編碼頁(如 `Code Page=936`) → 破壞 Unicode → **移除編碼頁設定**。
3. 前端頁面編碼非 UTF-8 → 顯示亂碼 → **統一全鏈路 UTF-8**。
4. 從 Word 複製 → 格式遺失 → **改用 Excel 或直接鍵盤 Alt+0179 輸入**。
小結
儲存 `m³` 等特殊符號的鐵律:**資料庫用 `NVARCHAR`,輸入源用 Excel (Alt+0179) 或字元對照表,全鏈路 UTF-8**。一次設對,永不亂碼。