冰浪

哥已不再年轻 - 坚定梦想,毕生追求!
posts - 85, comments - 90, trackbacks - 0, articles - 3
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

J2ME对html的unicode实体编码的转换

Posted on 2009-07-10 17:57 冰浪 阅读(991) 评论(0)  编辑  收藏 所属分类: J2ME

在开发j2me浏览器时,对于html的unicode实体编码,我们需要将转换才能正常显示。如下面这样一段代码:
<a href="http://wap.monternet.com/">返回移动梦网</a><br />

方法如下:

    private static String decodeUnicode(final String dataStr) {
        
int start = 0;
        
int end = 0;
        
final StringBuffer buffer = new StringBuffer();
        
while (start > -1{
            
int system = 10;//进制
            if(start==0){
                
int t = dataStr.indexOf("&#");
                
if(start!=t)start = t;
            }

            end 
= dataStr.indexOf(";", start + 2);
            String charStr 
= "";
            
if (end != -1{
                charStr 
= dataStr.substring(start + 2, end);
                
                
//判断进制
                char s = charStr.charAt(0);
                
if(s=='x' || s=='X'){
                    system 
= 16;
                    charStr 
= charStr.substring(1);
                }

            }

            
//转换
            try{
                
char letter = (char) Integer.parseInt(charStr,system);
                buffer.append(
new Character(letter).toString());
            }
catch(NumberFormatException e){
                e.printStackTrace();
            }

            
            
//处理当前unicode字符到下一个unicode字符之间的非unicode字符
            start = dataStr.indexOf("&#",end);
            
if(start-end>1){
                buffer.append(dataStr.substring(end
+1, start));
            }

            
            
//处理最后面的非unicode字符
            if(start==-1){
                
int length = dataStr.length();
                
if(end+1!=length){
                    buffer.append(dataStr.substring(end
+1,length));
                }

            }

        }

        
return buffer.toString();
    }
 
    



 


只有注册用户登录后才能发表评论。


网站导航: