在开发j2me浏览器时对于html的unicode实体编码

  在开发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();
  }

文章来自永磁起重器http://www.shqzjx.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值