今日在写android的客户端,发现字符转化是个大问题。

下面是Unicode转UTF-8的转化,便于以后使用

  1. privatestaticStringdecodeUnicode(StringtheString){
  2. charaChar;
  3. intlen=theString.length();
  4. StringBufferoutBuffer=newStringBuffer(len);
  5. for(intx=0;x<len;){
  6. aChar=theString.charAt(x++);
  7. if(aChar=='\\'){
  8. aChar=theString.charAt(x++);
  9. if(aChar=='u'){
  10. //Readthexxxx
  11. intvalue=0;
  12. for(inti=0;i<4;i++){
  13. aChar=theString.charAt(x++);
  14. switch(aChar){
  15. case'0':
  16. case'1':
  17. case'2':
  18. case'3':
  19. case'4':
  20. case'5':
  21. case'6':
  22. case'7':
  23. case'8':
  24. case'9':
  25. value=(value<<4)+aChar-'0';
  26. break;
  27. case'a':
  28. case'b':
  29. case'c':
  30. case'd':
  31. case'e':
  32. case'f':
  33. value=(value<<4)+10+aChar-'a';
  34. break;
  35. case'A':
  36. case'B':
  37. case'C':
  38. case'D':
  39. case'E':
  40. case'F':
  41. value=(value<<4)+10+aChar-'A';
  42. break;
  43. default:
  44. thrownewIllegalArgumentException(
  45. "Malformed\\uxxxxencoding.");
  46. }
  47. }
  48. outBuffer.append((char)value);
  49. }else{
  50. if(aChar=='t')
  51. aChar='\t';
  52. elseif(aChar=='r')
  53. aChar='\r';
  54. elseif(aChar=='n')
  55. aChar='\n';
  56. elseif(aChar=='f')
  57. aChar='\f';
  58. outBuffer.append(aChar);
  59. }
  60. }else
  61. outBuffer.append(aChar);
  62. }
  63. returnoutBuffer.toString();
  64. }

更多相关文章

  1. AIDL使用
  2. JS判断客户端类型(ipad,iphone,android)
  3. android案例
  4. 开源中国-android软件资源整理
  5. android客户端发送XML数据至服务器
  6. Android客户端GPS定位
  7. Android:Service
  8. 2011年沈大海讲师Android的新浪微博客户端开发教程
  9. 用Android搭建客户端 手机和服务器交互开发实例

随机推荐

  1. MySQL数据库输入密码后闪退问题的解决方
  2. 史上最简单的MySQL数据备份与还原教程(中
  3. 史上最简单的MySQL数据备份与还原教程(下)(
  4. Node.js下向MySQL数据库插入批量数据的方
  5. MySQL无法创建外键的原因及解决方法
  6. 简述Redis和MySQL的区别
  7. mysql通过find_in_set()函数实现where in
  8. sql和MySQL的语句执行顺序分析
  9. 简析mysql字符集导致恢复数据库报错问题
  10. MySQL数据库表分区注意事项大全【推荐】