|
注意此函数支持是\u格式如果是%u可以先替换成\u,这个函数可以在usc2中插入不相关的解码字符,比如:你好\u1234不会影响解码,这个就是用寻找字符方法实现的,其实也可以用正则表达式方法搞定,这里足够用了。
方法名 ucs2解码 返回值 文本型
参数名 ucs2 类型 文本型
然后写代码
@ final StringBuffer buffer = new StringBuffer();
@ String result="";
@ String charStr="";
@ int findIndex=0;
@ int offsetIndex=0;
@ while(findIndex>-1)
@ {
@ findIndex=@<ucs2>.indexOf("\\u",offsetIndex);
@ if(findIndex>-1)
@ {
@ if(findIndex==offsetIndex)
@ {
@ charStr=@<ucs2>.substring(findIndex+2,findIndex+6);
@ char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。
@ result=new Character(letter).toString();
@ offsetIndex=findIndex+6;
@ buffer.append(result);
@ }else
@ {
@ result=@<ucs2>.substring(offsetIndex,findIndex);
@ charStr=@<ucs2>.substring(findIndex+2,findIndex+6);
@ char letter = (char) Integer.parseInt(charStr, 16);
@ result+=new Character(letter).toString();
@ offsetIndex=findIndex+6;
@ buffer.append(result);
@ }
@
@ }
@
@ }
@ if(offsetIndex<@<ucs2>.length()-1)
@ {
@ buffer.append(@<ucs2>.substring(offsetIndex));
@ }
@
@ @<ucs2>=buffer.toString();
返回(ucs2)
由于火山IDE代码不能复制粘贴,不是十分方便,凑活着写吧,我真心希望官方编辑的代码能像文本复制粘贴,估计是无望了。
这个代码我实际测试过没有问题,Java实现请参考我的博客https://blog.csdn.net/FL1623863129/article/details/103551582
最后欢迎访问我的博客https://blog.csdn.net/FL1623863129/,博客正在不定时发布火山移动编程的基础知识,方便大家学习和共同进步,衷心祝愿吴涛老总的火山越更新越好用!
|
|