- 浏览: 623884 次
- 性别:
- 来自: 北京
博客专栏
-
实战cglib
浏览量:50234
文章分类
最新评论
-
zhongyuanceshi:
非常厉害。看了下有了整体认识
NanoHttpd源码分析 -
di1984HIT:
xuexile!!
使用Jackson在Java中处理JSON -
小胖vs小猪:
能说明一下jar包的引用情况么。
实战CGLib系列之proxy篇(一):方法拦截MethodInterceptor -
魔主万界DEV:
楼主写的不错啊!赞一个!
一个FTP Pool工具类的实现(Commons Pool) -
yuanliangding:
java里的select不是要用户自己调了?然后拿出key一个 ...
IO系列文章之五:读《Scalable io in java》看Socket网络编程模型演变
在上一家公司做Android注入时,如果注入中文会有问题,需要将中文转换为unicode码注入,在网上查了一下转换工具类,大多数都是如下的解决方案:
public class CharacterSetToolkit { /** Creates a new instance of CharacterSetToolkit */ public CharacterSetToolkit() { } private static final char[] hexDigit = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' }; private static char toHex(int nibble) { return hexDigit[(nibble & 0xF)]; } /** * 将字符串编码成 Unicode 。 * @param theString 待转换成Unicode编码的字符串。 * @param escapeSpace 是否忽略空格。 * @return 返回转换后Unicode编码的字符串。 */ public static String toUnicode(String theString, boolean escapeSpace) { int len = theString.length(); int bufLen = len * 2; if (bufLen < 0) { bufLen = Integer.MAX_VALUE; } StringBuffer outBuffer = new StringBuffer(bufLen); for(int x=0; x<len; x++) { char aChar = theString.charAt(x); // Handle common case first, selecting largest block that // avoids the specials below if ((aChar > 61) && (aChar < 127)) { if (aChar == '\\') { outBuffer.append('\\'); outBuffer.append('\\'); continue; } outBuffer.append(aChar); continue; } switch(aChar) { case ' ': if (x == 0 || escapeSpace) outBuffer.append('\\'); outBuffer.append(' '); break; case '\t':outBuffer.append('\\'); outBuffer.append('t'); break; case '\n':outBuffer.append('\\'); outBuffer.append('n'); break; case '\r':outBuffer.append('\\'); outBuffer.append('r'); break; case '\f':outBuffer.append('\\'); outBuffer.append('f'); break; case '=': // Fall through case ':': // Fall through case '#': // Fall through case '!': outBuffer.append('\\'); outBuffer.append(aChar); break; default: if ((aChar < 0x0020) || (aChar > 0x007e)) { outBuffer.append('\\'); outBuffer.append('u'); outBuffer.append(toHex((aChar >> 12) & 0xF)); outBuffer.append(toHex((aChar >> 8) & 0xF)); outBuffer.append(toHex((aChar >> 4) & 0xF)); outBuffer.append(toHex( aChar & 0xF)); } else { outBuffer.append(aChar); } } } return outBuffer.toString(); } /** * 从 Unicode 码转换成编码前的特殊字符串。 * @param in Unicode编码的字符数组。 * @param off 转换的起始偏移量。 * @param len 转换的字符长度。 * @param convtBuf 转换的缓存字符数组。 * @return 完成转换,返回编码前的特殊字符串。 */ public String fromUnicode(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); } }
使用方法如下:
public static void main(String[] args){ String theString="中文汉字+123"; System.out.println(cstk.toUnicode(theString, false)); System.out.println(cstk.fromUnicode(theString.toCharArray(), 0, theString.length(), new char[1024])); }
希望对看到的人有所帮助。
发表评论
-
redis中hash与list操作性能
2017-07-31 22:08 1718待补充... -
工作中使用Kafka接收消息代码整理
2017-06-25 14:51 868前段时间工作中使用到Kafka接收消息,简单整理一下: ... -
H5跨域请求解决方式整理
2017-05-14 14:44 3262H5跨域解决方式整理 以前工作中遇到过关于前端跨域访问问 ... -
一个微信小程序服务端开发实例
2017-04-23 11:10 1904前段时间因工作需要,研究了一下微信小程序Java服务端开发 ... -
一个简单的状态机总结
2014-02-07 21:23 1838工作中一个简单的状态机实现,总结如下。 定义状态: p ... -
spring+mybatis配置
2013-11-30 09:06 863mybatis配置部分: <?xml versio ... -
关于MySQL主从不同步问题
2013-09-24 21:49 1984今天线上出现了数据更新后在手机终端无法获取最新数据的问题。 ... -
工作中遇到的一个关于hibernate jpa的问题
2013-08-15 06:41 996昨天用hibernate-jpa(2.0)时发现一个问题, ... -
关于MySQL导入导出SQL文件
2013-08-14 06:50 1080记录一下几个常用的MySQL导入导出命令: 1、Mysq ... -
Tomcat调优相关总结
2013-08-09 07:50 1124关于Tomcat调优的一些 ... -
与git服务器添加信任关系
2013-08-08 07:13 26841、本地机器,进入GitBash: ssh-keygen ... -
关于Redis扩容方案
2013-08-08 07:33 2915首先关于Redis,目前某应用redis部署2台机器,做m ... -
某高并发应用JVM启动参数配置
2013-07-29 21:51 3294这个是目前公司某高并发应用生产环境的JVM启动参数,该应用 ... -
使用tcpdump+wireshark进行应用分析
2013-07-12 06:32 7553前一段时间接了一个任务,把目前主流的应用市场请求响应全抓出 ... -
关于解析不合法JSON的方法
2013-05-16 06:37 8930最近工作中写了一个抓取第三方应用数据的程序,该数据格式为J ... -
关于回调
2013-05-12 19:37 1033本文主要是自己对于回调的一些总结记录,如果有错误欢迎大家指 ... -
非android环境获取apk签名信息
2013-04-30 15:14 5590前段时间在工作中遇到一个问题,即在非android环境下获 ... -
Java中的volatile关键字作用[转自网络]
2013-03-27 21:34 874在Java内存模型下,线程可以把变量保存在本地内存(比如机 ... -
Java中的transient关键字
2013-03-26 21:43 834Java的serialization提供了一种持久化对象实 ... -
Java无限循环小数判定问题
2013-03-26 21:40 4339今天遇到一个2个整数相除后无限循环小数判定的问题,我还在纠 ...
相关推荐
汉字与unicode转换工具
unicode utf-8 汉字转换工具类 unicode utf-8 汉字转换工具类 unicode utf-8 汉字转换工具类
unicode和中文互相转换工具,支持不同编码格式。
一个html页面 用js 实现 unicode中文互相转换工具。方便快捷
Unicode—汉字互相转换工具,可以方便查询汉字的Unicode,也可以查询Unicode对应的汉字
有的时候,遇见中文都被转化成了Unicode内码,看着很不爽,于是写了这么个小工具,用来将Unicode内码转换为中文,可以实现整篇的转换。 另外,此工具也可以将中英文转换为Unicode内码(您可以选择是否将英文转换)...
本源码是一个中文汉字与Unicode编码转换工具,采用WinForm进行开发,实现中文...菜单功能:1、中文汉字转换成Unicode编码2、Unicode编码转换成中文汉字注意事项:1、开发环境为Visual Studio 2012,使用.net 4.5开发。
小巧好用的编码转换工具,输入中文,一点按钮就出来转换后的unicode
汉字Unicode码转换工具,中文转换Unicode
轻松完成汉字和Unicode互相转换
自己写的一个Unicode和汉字的相互转换工具,附有源码和可执行jar包,在JDK7开下用Eclipse开发的~
该工具支持汉字和unicode之间的相互转换器
汉字编码转换工具,实现了汉字与 utf-8 gb2312 unicode 互转,开发者多百多度 qq:547170882
从Delphi7开始,窗体文件dfm里的汉字都变成了#28162#31992之类的形式,看起来非常不直观。 而且在Delphi2009,delphi2010里,甚至在IDE的View As TExt模式下,看到的也是#28162#31992...对Pas文件的汉字转换也是适用的。
汉字UNICODE互换工具
一个简单且实用的unicode和中文的转换工具……
我一直在用,可以实现Unicode编码转汉字,汉字转Unicode编码的一个很好的转换工具。电影网站站长必备小工具。
主要为大家详细介绍了Java实现中文字符串与unicode互转的工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
可将数字、字母、汉字转换成Unicode编码。