每日学习笔记(23)
2011-11-17 12:15
375 查看
1,从前端传过来的参数是"\u9676\u9676\u6D4B\u8BD5\u8D26\u53F701"这样的unicode编码,需要将其转换为中文字符串,发现java.util.Properties类中有一个loadConvert函数可以完成这件事,直接copy过来使用。
public static String loadConvert(char[] in, int off, int len, char[] convtBuf) { if (convtBuf.length < len) { int newLen = len * 2; if (newLen < 0) { newLen = Integer.MAX_VALUE; } convtBuf = new char[newLen]; } char aChar; char[] out = convtBuf; int outLen = 0; int end = off + len; while (off < end) { aChar = in[off++]; if (aChar == '\\') { aChar = in[off++]; if (aChar == 'u') { // Read the xxxx int value = 0; for (int i = 0; i < 4; i++) { aChar = in[off++]; switch (aChar) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': value = (value << 4) + aChar - '0'; break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': value = (value << 4) + 10 + aChar - 'a'; break; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': value = (value << 4) + 10 + aChar - 'A'; break; default: throw new IllegalArgumentException( "Malformed \\uxxxx encoding."); } } out[outLen++] = (char) value; } else { if (aChar == 't') aChar = '\t'; else if (aChar == 'r') aChar = '\r'; else if (aChar == 'n') aChar = '\n'; else if (aChar == 'f') aChar = '\f'; out[outLen++] = aChar; } } else { out[outLen++] = (char) aChar; } } return new String(out, 0, outLen); }
相关文章推荐
- 每日学习笔记(23)
- 每日学习笔记(23)
- 每日学习笔记(23)
- 设计模式学习-每日一记(23.责任链模式)
- 每日学习笔记(17)
- 学习笔记_JavaSE_23_多线程的两种方式、安全问题、锁机制
- 每日学习笔记(26)
- 每日学习笔记(5)
- 每日学习笔记(16)
- 《剑指Offer》学习笔记--面试题23:从上往下打印二叉树
- 每日学习笔记(20)
- Linux学习笔记23——取消线程
- 3/23学习String源码笔记记录
- [每日一学]MFC学习笔记——自定义消息的使用
- [每日学习笔记][2012.07.09]使用Java理解程序逻辑(二)
- C#学习笔记(23)——C#将PPT批量转为JPG(aspose方法)
- [每日学习笔记][2012.07.15]使用Java理解程序逻辑(八)
- 每日学习笔记(24)
- [每日一学]MFC学习笔记——Hello World
- OAF学习笔记-23-OAF中将数据库中的表导出生成xls ,xlsx,csv 等格式