直接用輸入法打出來的字是什麼編碼的呢?

2021-10-05 04:41:43 字數 953 閱讀 5952

事實上我用輸入法對著什麼程式輸入都不會出問題。那麼這是怎麼做到的呢?

我猜有兩種情況:

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日語輸入法 完全掌握日語輸入法 玩轉日文輸入法 日語輸入法的輸入規則 假名輸入 日文鍵盤分布圖 雖然和中文的不完全一樣,但大體上還是可以通用的。羅馬音輸入 羅馬字輸入 字入力 就...