對輸入法中全形半形和中英文輸入法的理解

2021-06-18 09:56:29 字數 1040 閱讀 3822

之所以有這樣的區別,簡單說就是中文系統用雙位元組顯示漢字造成的與世界標準(由美國制訂的)不一的問題。

說白了,對我們來說就是只針對中文的字型檔才有全形半形的說法。

(1)全形

漢字字元和規定了全形的英文本元及國標gb2312-80中的圖形符號和特殊字元都是全形字符。全形字符在編碼上佔兩個位元組的寬度。國標中為原始的英文本母、數字和標點也定義了全形狀態,有一部分中英文標點的長相是不一樣的(如句號)。

(2)半形

是指英檔案ascii碼中的各種符號,包括了英文本母、數字鍵、和一些符號,半形的內碼都是乙個位元組。在編寫程式**和系統命令時都使用半形字元,初學c或c++的人可能都會有把乙個逗號或分號寫成全形的從而出現編譯出錯的經歷。

由於國標中的字元都是全形的,因此,輸入法中輸出的漢字和中文標點永遠是全形(空格不算);輸出的英文本母、英文標點和數字既可能是全形的也可能是半形的。

在輸入法中,可以這樣理解,輸出的全形字母和符號會占用固定的寬度(一般是乙個或半個漢字寬),而輸出的半形字母符號的寬度不是統一的,為了讓輸出的字母和符號緊挨著,其寬度會因為字母本身的形狀會而有所不同。

我以搜狗五筆為例學習了一下,其他輸入法應該是一樣的。

1.以搜狗五筆為例,在中文輸入狀態下,一共有四種組合:

(1)中文標點+全形:這時輸入的標點是這樣的,。:,這時標點和數字都是全形的;

(2)中文標點+半形:這時輸入的標點是這樣的,。:【1】,可見選中半形對中文標點來說不起作用,不過對數字會起作用;

(3)英文標點+全形:這時輸入的標點是這樣的,.:[1],數字是全形的;

(4)英文標點+半形:這時輸入的標點是這樣的,.:[1]

,符號和數字也變成的半形的。

2.在英文輸入狀態下,只有全形和半形可選,中英文標點不可選:

(1)全形英文:這時的輸入是這樣的abc,.:;abc,.:;(宋體)

(2)半形英文:這時的輸入是這樣的abc,.:;abc,.:;

(times new roman)

如何切換中英文輸入法及全形 半形?(原創)

如何 切換中英文輸入法及 全形 半形?問題描述 如何切換中英文輸入法及 全形 半形 中英文本元等?解決方案 一 宣告外部函式 functionbooleanimmsimulatehotkey unsignedlonghwnd,unsignedlongdwhotkeyid library imm32....

輸入法中的全形與半形

問 輸入法為什麼有全形半形之分 這要從發展史說起 1.二進位制 計算機普遍遵循馮諾依曼結構體系,它規定了計算機內部以二進位制為主要數制 這和電路有關 所以計算機只認識二進位制的0或1。其它符號比如十進位制的 2 9 字母 a za z 標點符號,中文等等是不認識的。那麼,當我們說 a 的時候,它是怎...

輸入法的全形和半形區別?

全月亮是全形,半個月亮是半形 全形佔兩個位元組,半形佔乙個位元組。半形全形主要是針對標點符號來說的,全形標點佔兩個位元組,半形佔乙個位元組,而不管是半形還是全形,漢字都還是要佔兩個位元組 在程式設計序的源 中只能使用半形標點 不包括字串內部的資料 在不支援漢字等語言的計算機上只能使用半形標點 其實這...