事實上我用輸入法對著什麼程式輸入都不會出問題。那麼這是怎麼做到的呢?
我猜有兩種情況:
1、程式會告訴輸入法它要哪種編碼的字元。
2、輸入法輸出的字元在輸入程式的時候被程式轉換了。
當軟體或者沒有給出任何編碼指示的時候,都推脫給作業系統了,作業系統是中文的,預設就gb2312了,如果作業系統是其他預設編碼方式,你的輸入也會變成相應的其他的方式。
"直接用輸入法打出來的字" -- 這裡含好幾個過程。
(1)當你用鍵盤打字時,從鍵盤進入計算機的是ascii碼序列。
(2)「輸入法」把 ascii碼序列 轉換成 輸入法 自己規定的 碼。
(3)你在乙個窗上看到的東西,例如 notepad 的文字編輯窗,wordpad 的文字編輯窗, 或 dos 黑窗(控制台命令7a686964616fe58685e5aeb931333264636137窗)那是 把 「輸入法自己規定的碼」顯示出來,這裡有乙個編碼到字型(font)到bitmap位圖形的轉換。只有當它們匹配時才能顯示出有意義的 字的形狀。否則看上去是「亂碼」。
以dos 黑窗為例,只有正確設定它的 所謂 **頁(code page) ,才能顯示出有意義的字形。
gbk的code page是cp936;
big5的code page是cp950;
gb2312的code page是cp20936;
dos 命令 chcp 不帶引數 可以顯示 當前 「**頁」,加引數可以改變 「**頁"
例如:chcp 936 例如: chcp 437
(4)從文字編輯窗 到 存放的檔案 也有 **的轉換。
例如,notepad, 可以存放為 unicode 小端碼,unicode 大端碼,utf-8碼.
unicode 檔案會在檔案頭自動新增 unicode bom ( byte-order mark)
---所以, 直接用輸入法打出來的字是什麼編碼的呢,具體情況具體分析,不可一概而論。
c 檢測中英輸入法 用C 控制當前輸入法
如何獲取系統中所有的輸入法,以及如何根據輸入語言及其他特殊要求選擇特定的輸入法,下面我以兩段程式片斷再加以說明。1 遍歷系統中所有的輸入法,可以用以下程式片斷 foreach inputlanguage lang in inputlanguage.installedinputlanguages th...
用C 控制當前輸入法
如何獲取系統中所有的輸入法,以及如何根據輸入語言及其他特殊要求選擇特定的輸入法,下面我以兩段程式片斷再加以說明。1 遍歷系統中所有的輸入法,可以用以下程式片斷 foreach inputlanguage lang in inputlanguage.installedinputlanguages 執行...
5安卓輸入法鍵盤顯示 搜尋 日語輸入法怎麼用?
電腦日語輸入法 微軟ime日語輸入法 谷歌日語輸入法 手機日語輸入法 安卓手機日語輸入法 塞班手機日語輸入法 iphone日語輸入法 完全掌握日語輸入法 玩轉日文輸入法 日語輸入法的輸入規則 假名輸入 日文鍵盤分布圖 雖然和中文的不完全一樣,但大體上還是可以通用的。羅馬音輸入 羅馬字輸入 字入力 就...