原來在頁面用fckediter編輯信息,爲了信息美觀,信息提交時需要對信息內容進行全角到半角的轉換,
有時候如果信息兩太大的話處理非常慢,懷疑是js處理太慢了,
有個想法,在java裏面處理信息內容,不在js裏面處理。
想法挺好,但是在網上還真沒有找到需要的資源,基本上都是一個資源的拷貝粘貼,絕得很無聊,
不扯那麼遠了,
網上確實有一個例子,但是沒有解決我的問題,
算了 還是自己寫吧,
package com.hung.test; /** * 全角轉半角 * @author hung * */ public class MyQB { /** * @param args */ public static void main(String[] args) { String qs = "1 2 3·4657890qazwsxedcrfvtgbyhnujmkilo,。、;‘’\】【"; String rqs = Q2BChange(qs,true); System.out.println(qs + "\n" + rqs); } private static String Q2BChange(String input,boolean flag) { String result = ""; char[] str = input.toCharArray(); for(int i=0;i<str.length;i++ ){ int code = str[i];//獲取當前字符的unicode編碼 if (code >= 65281 && code <= 65373)//在這個unicode編碼範圍中的是所有的英文字母以及各種字符 { result +=(char)(str[i] - 65248);//把全角字符的unicode編碼轉換爲對應半角字符的unicode碼 }else if (code == 12288)//空格 { result +=(char)(str[i] - 12288 + 32); }else if(code == 65377){ result +=(char)(12290); }else if(code == 12539){ result +=(char)(183); }else if(code == 8482 && flag==true){//如果是特殊字符TM 並且是需要轉換的所作操作 }else if(code ==8226){ //特殊字符 ‘·’的轉化 result += (char)(183); }else{ result += str[i]; } } return result; } }
多了不多說,直接看效果
親 請看附件
保證真是有效
-----------------------------------------------------------2012-09-04--------------------------------------------------------
多謝 ydsakyclguozi 指出上面有一個問題:中文狀態下,單引號全角轉半角失敗
下面說明一下原因:
我是用的是中文全角打印的上面字符,轉換之後是半角的,但是看着好像和沒轉一樣。
但是我試了一下,中文的單引號全角和半角是一樣的,所以這個可以說不是程序的問題,是中文字符的問題
在英文狀態下單引號的全角和半角可以轉換。
再次表示感謝 。