1、首先,需要知道的是中文编码的种类,有:GB2312 、GBK、Unicode、UTF8、BIG5等。现在大多数的应用软件都采用Unicode编码,在JAVA的内部也是如此。所以关于上述问题,只需要对字符的Unicode编码进行一个相应的处理就可以解决。
2、下面说明一下Unicode编码,该编码采用双字节编码方式,对所有字符,都采用2个字节编码,即4byte,这点很重要,我们只需要对这4byte进行处理就可以完成相应字符的转换了。另外在Unicode编码中,标点、数字、字母的编码与汉字的编码在最高位会有明显区别。有兴趣可以参看Unicode 编码表
3、关于全角转半角的问题,在Unicode中,标点、数字、字母的半角编码最高位均为0,它们的全角编码与半角编码的第三位相差32h。
根据上面的结论,实现的全角转半角的JAVA代码如下,至于半角转全角,加变减就成了:
public class change {
public static void main(String[] args) {
String QJstr="hello!! 全角转换,DAO";
String result=SBCchange(QJstr);
System.out.println(QJstr+"/n"+result);
}
public static final String SBCchange(String QJstr)
{
String outStr="";
String Tstr="";
byte[] b=null;
for(int i=0;i<QJstr.length();i++)
{
try
{
Tstr=QJstr.substring(i,i+1);
b=Tstr.getBytes("unicode");
}
catch(java.io.UnsupportedEncodingException e)
{
e.printStackTrace();
}
if (b[3]==-1)
{
b[2]=(byte)(b[2]+32);
b[3]=0;
try
{
outStr=outStr+new String(b,"unicode");
}
catch(java.io.UnsupportedEncodingException e)
{
e.printStackTrace();
}
}else outStr=outStr+Tstr;
}
return outStr;
}
}
原帖来自于网易社
分享到:
相关推荐
【程序设计】易语言取文本中汉字的方法(解决全角半角问题)
针对于VS2005开发出来的程序有可以出现,输入的界而老是全角时,可以使用这个软件来解决。
VS2005全角半角切换补丁,解决vs2005编码时候出现的全角半角切换的问题
主要介绍了MySQL存储全角字符和半角字符的区别的相关资料,需要的朋友可以参考下
利用C#开发工具开发程序,导致全角半角转换麻烦。
解决任何情况下的全角、半角字符转化问题,有效的控制程序中出现全角半角问题。方法简单,易懂。
遇到过中文输入法的半角自动切换成全角的问题,其实这是Framework2.0的一个bug,这个补丁程序将会解决您的烦恼。
在开发过程中或者使用C#程序时,输入法总是从半角变为全角,这个工具可以解决你的烦恼。
CS2005中winfrm解决输入法自动全角到半角转换 回车光标到下一个控件
解决什么问题:快速方便的对文本进行全角半角自动转换 适用什么场景:学生答题数据中全角字符替换为半角字符 二、全角半角原理 全角即:Double Byte Character,简称DBC 半角即:Single Byte Character,简称SBC...
全角半角一直在C#开发中都存在问题,现提供一个C#编程中全角和半角问题的解决,针对于Framework2.0的补丁。解压直接安装,非常的实用,分享给大家!
发布文章时WordPress会自动将代码中的单双引号转换为全角符号,分享代码特别不方便,解决方法如下
解决PB无法直接识别全角空格问题,特写该函数,将字符串中的全角空格替换为半角空格。
原本的maxLength属性是不区分全角/半角字符的,对于一些可中英文混合输入地方而言不太合适。所以想找一个可区分全角/半角字符的校验,而且要保证一定的可重用性。 百度搜了一圈都没找到合适的现成的解决方案,所以...
在app中,展示数据时,里面有汉字、数字、特殊字符时,由于全角、半角问题导致TextView参差不齐。在网上找了许多,半角转全角并没什么用,还有其他自定义TextView都有问题。最后终于找到一个,就像Word一样,可以使...
C#全半角转换代码,处理字符串中的全角字符,解决因输入法导致的数据错误
解决Android中原生TextView显示中英文特殊字符等末尾参差不齐问题
·标点修正功能(半角逗号变全角逗号、半角问号变全角问号、半角感叹号变全角感叹号、半角括号变全角括号、半角分号变全角分号、半角冒号变全角冒号、半角句点及全角句点变句号、多位句点变省略号、长省略号合并成六...
sensitive-word 基于 DFA 算法实现的高性能敏感词工具。工具使用 java 实现,帮助我们解决常见的问题。6W+ 词库,且不断优化更新 基于 DFA 算法,性能较好 ...支持全角半角互换 支持英文大小写互换