CHM 的實質是 HTML 文件。通常狀況下沒有指定字符編碼的 CHM 是調用 Internet Explorer 瀏覽器的字符編碼設定來顯示 CHM 文件的。
在註冊表 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\International 下有 AutoDetect 和 Default_CodePage 2個鍵名,就是 IE 瀏覽器字符編碼的相關設定鍵。 其中:AutoDetect 是表示自動偵測字符編碼的意思。同 IE 瀏覽器「查看」菜單的「編碼」中的「自動選擇」。鍵值設置1,表示啓用自動偵測。通常的,簡體中文的操做系統,IE 瀏覽器就會使用 GB2312 去顯示那些沒有指定字符編碼的頁面。若是 AutoDetect 設置爲0,那瀏覽器會去使用 Default_CodePage 的設定來顯示頁面。 所以,咱們在簡體中文的操做系統上打開簡體中文的 CHM 文檔出現亂碼時,把 AutoDetect 設置爲1就能正常顯示;在簡體中文的操做系統上打開繁體中文的 CHM 文檔出現亂碼時,先把 AutoDetect 設置爲0,而後把 Default_CodePage 設置爲 BIG5 的代碼頁 950 便可。
簡體中文Windows經常使用 ANSI 代碼頁936,在註冊表二進制值是 A8 03 00 00;繁體中文Windows經常使用 ANSI 代碼頁950,在註冊表二進制值是 B6 03 00 00;拉丁語系Windows經常使用 ANSI 代碼頁1252,在註冊表二進制值是 E4 04 00 00