作者:吳祐賓
你使用倉頡打字的時候,有沒有感受到奇怪的味道:
* 晚上的「晚」永遠都排在第二個字
* 「卜竹竹手一」打不出「産」?而「木中中女」打不出「樓」?
這代表你也是微軟倉頡四代的受災戶
在學習倉頡五代後,一直覺得微軟倉頡和新倉頡的倉頡四代碼表很不友善,一直到最近看到倉頡之友的【替換微軟倉頡碼表,盡享倉頡補完計劃的樂趣】,才知道原來微軟倉頡也可以更新碼表,終於能享受到輸入文字的樂趣了!
首先,本篇文章適用範圍:Windows 10 2004 版以上。記得,Windows 更新有時會覆蓋原來倉頡四代的碼表,記得要再回來更新 (2026/03/18 文末追加:一鍵更換 DLC)
倉頡碼表下載點
下載:MSCJData_Cangjie 開頭字樣檔案
例如:
- MSCJData_20251014_Cangjie3_WithExtJ.7z (三代,到 2025 年 10 月後就沒再更新)
- MSCJData_Cangjie5_20260207.zip (五代)
給倉頡三代的使用者 (習慣打法為:「木中田女」=樓;「戈土心」=應)
倉頡三代補完計劃替換碼表下載地址:https://github.com/Arthurmcarthur/Cangjie3-Plus/releases
給倉頡五代的使用者 (習慣打法為:「木中中女」=樓;「戈人土心」=應)
倉頡五代補完計劃替換碼表下載地址:https://github.com/Jackchows/Cangjie5/releases
安裝步驟
- 任務管理器裏結束兩個Microsoft IME進程。
- 進入 C:\Windows\System32\zh-hk 目錄,刪除
- ChtCangjie.sdc
- ChtCangjie.spd
- ChtCangjieExt.lex
- 打開「包含香港增補字符集字元(HKSCS)」開關。
完成上述步驟後請重新開機,接下來就可以好好體驗倉頡五代所帶來的暢快輸入感!
相信更多愛用倉頡的愛好者不滿足於預設的內容。不過因為我個人沒用到進階設定,想要了解更多細節的倉頡愛好者,歡迎再閱讀補完計畫說明檔。
總結
使用倉頡補完計畫優點
- 字碼編排最貼近符合倉頡歷代改版標準。
- 可以使用倉頡五代輸入方式。
- 重難(ZX)符號輸入完整呈現。
- 還有微軟倉頡獨門快速鍵 100% 保留,例如:
Ctrl+, ,
Ctrl+' 、
Ctrl+. 。
Ctrl+; ;
Ctrl+Shift+; :
`+ +
`- -
`/ /
`/ 向下鍵 ÷
`* 向下鍵 ×
`+ 向下鍵 ±
Ctrl+[ 【 向下鍵 「...
Ctrl+] 】 向下鍵 」...
Ctrl+Alt+, 叫出特殊符號表 (輸入法整合器)
使用倉頡補完計畫缺點
Z開頭的符號碼無法使用,只能使用微軟輸入法的符號快速輸入鍵輸入。(20220904 MSCJData 版本已解決此問題)- 由於微軟倉頡的排序邏輯寫死在程序中,與碼表沒有關聯。補完計畫在調整此問題已將部首、筆畫、兼容區字符移除,RIME 則無此問題
整體來說優點大於缺點,能暢快享受輸入文字的樂趣,在這邊分享給大家。
2026/03/03 附記:
為什麼我執意要使用微軟輸入法引擎?
1. PIME 容易當機 (Python 不知道為什麼就閃退)
2. 小小輸入法在 WinUI (Win App 2.0) 是不能用的,它只能在傳統應用程式下使用
3. 其它的自由倉頡、RIME 等輸入法引擎,操作習慣都要重新熟悉,新設備也需要另外安裝。但熟悉微軟輸入法引擎下,新環境我只需要忍耐字碼位置就好,比較不會換了新設備就變智缺化 (笑)
2026/03/18 追加:
上述人工步驟在每次被 Window Update 陰了後,就很懶得重複做,於是我讓 AI 寫了批次檔來做自動更新
懶人自動包:倉頡三代使用者
你可以將底下的文字內容存成【AutoUpdateCJ3.bat】,並以【系統管理員身份執行】。
由於倉三以 7z 儲存,所以會多一道 7z 程式下載,詳見程式碼説明。
* 我用的是倉五,所以倉三沒有驗證,還請使用後留言跟我説一下是否成功。
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
title 倉頡三代碼表自動更新工具 (路徑修正版)
:: 1. 設定變數
set "URL_7Z=https://github.com/Arthurmcarthur/Cangjie3-Plus/releases/download/4.2/MSCJData_20251014_Cangjie3_WithExtJ.7z"
set "TARGET_DIR=%SystemRoot%\System32\zh-hk"
set "TEMP_WORK=%TEMP%\CJ3_Update"
set "FILE_7Z=%TEMP_WORK%\CJ3.7z"
set "EXE_7ZA=%TEMP_WORK%\7za.exe"
:: 這裡指定 7z 內部的精確路徑 (注意 7z 內部路徑斜線方向)
set "INTERNAL_FILE=Windows 10 2004及之后的Windows\ChtCangjieExt.lex"
echo [*] 正在建立工作目錄...
if exist "%TEMP_WORK%" rd /s /q "%TEMP_WORK%"
mkdir "%TEMP_WORK%"
echo [*] 正在下載 7-Zip 獨立版工具...
powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri 'https://github.com/mcmilk/7-Zip-zstd/releases/download/v22.01-v1.5.2-R1/7za.exe' -OutFile '%EXE_7ZA%'"
echo [*] 正在下載三代碼表壓縮檔...
powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%URL_7Z%' -OutFile '%FILE_7Z%'"
if %ERRORLEVEL% NEQ 0 (
echo [!] 下載失敗,請檢查網路。
pause
exit /b
)
echo [*] 正在從 7z 提取指定版本:!INTERNAL_FILE!
:: 直接提取特定路徑檔案,避開遍歷錯誤
"%EXE_7ZA%" e "%FILE_7Z%" -o"%TEMP_WORK%" "%INTERNAL_FILE%" -r -y >nul
set "SOURCE_LEX=%TEMP_WORK%\ChtCangjieExt.lex"
if not exist "%SOURCE_LEX%" (
echo [!] 提取失敗!找不到指定的路徑檔案。
echo 預期路徑: %INTERNAL_FILE%
pause
exit /b
)
echo [*] 正在關閉輸入法背景進程...
taskkill /F /IM CTFMON.EXE /T >nul 2>&1
taskkill /F /IM MicrosoftIME.exe /T >nul 2>&1
echo [*] 執行權限檢查與備份...
set "DATE_STR=%date:~0,4%%date:~5,2%%date:~8,2%"
set "BACKUP_DIR=%TARGET_DIR%\Backup_CJ3_%DATE_STR%"
mkdir "%BACKUP_DIR%" 2>nul
if %ERRORLEVEL% NEQ 0 (
echo [!] 權限不足!請右鍵點選「以系統管理員身分執行」。
pause
exit /b
)
copy /Y "%TARGET_DIR%\ChtCangjie.sdc" "%BACKUP_DIR%\" >nul
copy /Y "%TARGET_DIR%\ChtCangjie.spd" "%BACKUP_DIR%\" >nul
copy /Y "%TARGET_DIR%\ChtCangjieExt.lex" "%BACKUP_DIR%\" >nul
echo [*] 正在替換系統碼表 (三代 2004+ 版)...
del /F /Q "%TARGET_DIR%\ChtCangjie.sdc"
del /F /Q "%TARGET_DIR%\ChtCangjie.spd"
del /F /Q "%TARGET_DIR%\ChtCangjieExt.lex"
copy /Y "%SOURCE_LEX%" "%TARGET_DIR%\ChtCangjieExt.lex"
echo [*] 寫入 HKSCS 登錄檔設定...
reg add "HKEY_CURRENT_USER\Software\Microsoft\IME\15.0\CHT\Cangjie" /v "Enable HKSCS" /t REG_DWORD /d 1 /f >nul
echo.
echo ==================================================
echo 三代更新完畢 (已選用 Windows 10 2004 及之後版本)
echo 1. 已備份舊檔至 System32\zh-hk\Backup_CJ3_%DATE_STR%
echo 2. 請「立即重新啟動電腦」以讓碼表生效
echo ==================================================
rd /s /q "%TEMP_WORK%"
pause
start ctfmon.exe
exit
懶人自動包:倉頡五代使用者
你可以將底下的文字內容存成【AutoUpdateCJ5.bat】,並以【系統管理員身份執行】。
我自己測試後可正確使用。
@echo off
:: 切換至 UTF-8 碼頁,確保能處理中文字路徑
chcp 65001 >nul
setlocal enabledelayedexpansion
title 倉頡五代碼表自動更新工具 (壓縮檔提取版)
:: 1. 設定變數
set "ZIP_URL=https://github.com/Jackchows/Cangjie5/releases/download/v4.1-beta/MSCJData_Cangjie5_20260207.zip"
set "TARGET_DIR=%SystemRoot%\System32\zh-hk"
set "TEMP_WORK=%TEMP%\CJ5_Update"
set "ZIP_FILE=%TEMP_WORK%\CJ5.zip"
:: 這裡指定壓縮檔內的子路徑(對應您需要的「傳統漢字優先」版本)
set "INTERNAL_PATH=傳統漢字優先(偏好台灣用字習慣)/ChtCangjieExt.lex"
echo [*] 正在建立工作目錄...
if exist "%TEMP_WORK%" rd /s /q "%TEMP_WORK%"
mkdir "%TEMP_WORK%"
echo [*] 正在下載壓縮檔...
powershell -Command "Invoke-WebRequest -Uri '%ZIP_URL%' -OutFile '%ZIP_FILE%'"
if %ERRORLEVEL% NEQ 0 (
echo [!] 下載失敗,請檢查網路連線。
pause
exit /b
)
echo [*] 正在從 ZIP 提取指定碼表 (ChtCangjieExt.lex)...
powershell -Command "Expand-Archive -Path '%ZIP_FILE%' -DestinationPath '%TEMP_WORK%\Extracted' -Force"
echo [*] 正在定位碼表檔案...
:: 直接組合路徑,並將 INTERNAL_PATH 的 / 換成 \
set "TEMP_INTERNAL=%INTERNAL_PATH:/=\%"
set "SOURCE_LEX=%TEMP_WORK%\Extracted\%TEMP_INTERNAL%"
:: 萬一直接指定失敗(通常是編碼導致路徑對不起來),就用 dir 指令掃描含有 "台灣" 的路徑
if not exist "%SOURCE_LEX%" (
for /f "delims=" %%a in ('dir /s /b "%TEMP_WORK%\Extracted\ChtCangjieExt.lex" ^| findstr "台灣"') do (
set "SOURCE_LEX=%%a"
)
)
:: 最後檢查一次變數是否有值
if "%SOURCE_LEX%"=="" (
echo [!] 找不到檔案,路徑可能有誤。
pause
exit /b
)
echo [*] 已定位檔案: "%SOURCE_LEX%"
echo [*] 正在停止 Microsoft IME 進程...
taskkill /F /IM CTFMON.EXE /T >nul 2>&1
taskkill /F /IM MicrosoftIME.exe /T >nul 2>&1
echo [*] 正在備份與清理舊檔案...
set "BACKUP_DIR=%TARGET_DIR%\Backup_%date:~0,4%%date:~5,2%%date:~8,2%"
if not exist "%BACKUP_DIR%" mkdir "%BACKUP_DIR%"
copy /Y "%TARGET_DIR%\ChtCangjie.sdc" "%BACKUP_DIR%\"
copy /Y "%TARGET_DIR%\ChtCangjie.spd" "%BACKUP_DIR%\"
copy /Y "%TARGET_DIR%\ChtCangjieExt.lex" "%BACKUP_DIR%\"
del /F /Q "%TARGET_DIR%\ChtCangjie.sdc"
del /F /Q "%TARGET_DIR%\ChtCangjie.spd"
del /F /Q "%TARGET_DIR%\ChtCangjieExt.lex"
echo [*] 正在部署新碼表...
copy /Y "%SOURCE_LEX%" "%TARGET_DIR%\ChtCangjieExt.lex"
echo [*] 正在自動開啟 HKSCS 選項 (修改登錄檔)...
reg add "HKEY_CURRENT_USER\Software\Microsoft\IME\15.0\CHT\Cangjie" /v "Enable HKSCS" /t REG_DWORD /d 1 /f >nul 2>&1
echo.
echo ==========================================
echo 更新成功!
echo 已提取:傳統漢字優先(偏好台灣用字習慣)
echo 已自動備份至:%BACKUP_DIR%
echo.
echo 請「重新啟動電腦」以生效。
echo ==========================================
rd /s /q "%TEMP_WORK%"
pause
start ctfmon.exe
exit
這樣就實現一鍵安裝的倉頡更新啦!
若是哪天又被天殺的微軟「更新」蓋掉,只要再對 bat 按右鍵「以系統管理員身份執行」,3 秒鐘就修復完成!










