最近在做PC端網站的頁面的一個表單校驗,需要把全角輸入轉換成半角符號。之前沒有了解這些編碼的知識,還是得Google一下查查資料,故簡單總結一下。
1.什麼是全角和半角?
全角:是一種電腦字符,是指一個全角字符佔用兩個標準字符(或兩個半角字符)的位置。全角佔兩個位元組。
漢字字元和規定了全角的英文字元及國標GB2312-80中的圖形符號和特殊字元都是全角字元。在全角中,字母和數字等與漢字一樣佔據著等寬的位置。
半角:是指一個字元佔用一個標準的字元位置。半角佔一個位元組。
半角就是 ASCII 方式的字符,在沒有漢字輸入法起作用的時候,輸入的字母、數字和字符都是半角的。
每個半角字元只佔用一位元組的空間(一位元組有8位,共256個編碼空間)。漢語、日語、及朝鮮文等象形字語言的字庫量遠大於256個編碼空間,所以改用兩個位元組來儲存。同時,由於中日韓等象形文字的書寫習慣,如果統一使用全角字符的話,排列起來也顯得整齊。
為了排列整齊,英文和其它拉丁文的字符和標點也提供了全角格式。
2.全角和半角的區別
全角和半角主要是針對標點符號來說的,全角標點佔兩個字節,半角佔一個字節。不管是半角還是全角,漢字都要佔兩個位元組。
function ToCDB(str) { var tmp = ""; for (var i = 0; i < str.length; i++) { if (str.charCodeAt(i) > 65248 && str.charCodeAt(i) < 65375) { tmp += String.fromCharCode(str.charCodeAt(i) - 65248); } else { tmp += String.fromCharCode(str.charCodeAt(i)); } } return tmp }
function ToDBC(txtstring) {var tmp = ""; for (var i = 0; i < txtstring.length; i++) { if (txtstring.charCodeAt(i) == 32) {tmp = tmp + String.fromCharCode(12288);} if (txtstring.charCodeAt(i) < 127) { tmp = tmp + String.fromCharCode(txtstring.charCodeAt(i) + 65248); } }return tmp; }
以上是JS全角與半角轉換的實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!