- 浏览: 635180 次
- 性别:
- 来自: 北京
博客专栏
-
实战cglib
浏览量:50704
文章分类
最新评论
-
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 1811待补充... -
工作中使用Kafka接收消息代码整理
2017-06-25 14:51 921前段时间工作中使用到Kafka接收消息,简单整理一下: ... -
H5跨域请求解决方式整理
2017-05-14 14:44 3411H5跨域解决方式整理 以前工作中遇到过关于前端跨域访问问 ... -
一个微信小程序服务端开发实例
2017-04-23 11:10 1966前段时间因工作需要,研究了一下微信小程序Java服务端开发 ... -
一个简单的状态机总结
2014-02-07 21:23 1898工作中一个简单的状态机实现,总结如下。 定义状态: p ... -
spring+mybatis配置
2013-11-30 09:06 912mybatis配置部分: <?xml versio ... -
关于MySQL主从不同步问题
2013-09-24 21:49 2034今天线上出现了数据更新后在手机终端无法获取最新数据的问题。 ... -
工作中遇到的一个关于hibernate jpa的问题
2013-08-15 06:41 1053昨天用hibernate-jpa(2.0)时发现一个问题, ... -
关于MySQL导入导出SQL文件
2013-08-14 06:50 1121记录一下几个常用的MySQL导入导出命令: 1、Mysq ... -
Tomcat调优相关总结
2013-08-09 07:50 1173关于Tomcat调优的一些 ... -
与git服务器添加信任关系
2013-08-08 07:13 27301、本地机器,进入GitBash: ssh-keygen ... -
关于Redis扩容方案
2013-08-08 07:33 2968首先关于Redis,目前某应用redis部署2台机器,做m ... -
某高并发应用JVM启动参数配置
2013-07-29 21:51 3351这个是目前公司某高并发应用生产环境的JVM启动参数,该应用 ... -
使用tcpdump+wireshark进行应用分析
2013-07-12 06:32 7607前一段时间接了一个任务,把目前主流的应用市场请求响应全抓出 ... -
关于解析不合法JSON的方法
2013-05-16 06:37 8980最近工作中写了一个抓取第三方应用数据的程序,该数据格式为J ... -
关于回调
2013-05-12 19:37 1070本文主要是自己对于回调的一些总结记录,如果有错误欢迎大家指 ... -
非android环境获取apk签名信息
2013-04-30 15:14 5639前段时间在工作中遇到一个问题,即在非android环境下获 ... -
Java中的volatile关键字作用[转自网络]
2013-03-27 21:34 917在Java内存模型下,线程可以把变量保存在本地内存(比如机 ... -
Java中的transient关键字
2013-03-26 21:43 892Java的serialization提供了一种持久化对象实 ... -
Java无限循环小数判定问题
2013-03-26 21:40 4400今天遇到一个2个整数相除后无限循环小数判定的问题,我还在纠 ...
相关推荐
unicode utf-8 汉字转换工具类 unicode utf-8 汉字转换工具类 unicode utf-8 汉字转换工具类
总的来说,汉字与Unicode转换工具的目的是帮助开发者和用户在不同编码系统之间进行有效的数据交换和处理,确保汉字信息的准确无误。这样的工具通常会提供接口或者命令行选项,允许用户选择输入和输出的编码格式,...
unicode和中文互相转换工具,支持不同编码格式。
本文将深入探讨“文本与Unicode转换工具”及其相关知识点,帮助你理解和利用这种工具进行有效的文本处理。 首先,我们来理解什么是Unicode。Unicode是一个非营利组织制定的字符集,它为每个字符分配了一个唯一的...
一个html页面 用js 实现 unicode中文互相转换工具。方便快捷
Unicode与汉字的转换工具有多种实现方式,这里提到的是一个基于Java开发的工具,使用了Eclipse作为集成开发环境,并且兼容JDK7。Eclipse是一个广泛使用的开源IDE,尤其适合Java开发者,提供了丰富的代码编辑、调试和...
了解Unicode和汉字转换的概念以及如何利用工具进行操作,对于在跨平台和跨系统环境中处理中文数据的IT专业人士来说,是非常基础且实用的技能。通过熟练掌握这一知识点,可以避免许多因编码不匹配而引发的问题,提高...
从Delphi7开始,窗体文件dfm里的汉字都变成了#28162#31992之类的形式,看起来非常不直观。 而且在Delphi2009,delphi2010里,甚至在IDE的View As TExt模式下,看到的也是#28162#31992...对Pas文件的汉字转换也是适用的。
这个“Unicode—汉字互相转换工具”正是基于这一标准,为用户提供了一个便捷的平台来查询汉字与Unicode编码之间的相互转换。 在信息技术领域,Unicode的重要性不言而喻。它解决了早期计算机系统中各种不同的字符...
汉字UNICODE互换工具就是为了解决这类问题而生的,它能将文本数据中的汉字从一种编码格式转换为另一种,例如将GBK编码的文本转换成UNICODE编码,以便在支持UNICODE的系统上正常显示。 使用这款工具,用户可以方便地...
- **编程**:在编写多语言程序或处理文本数据时,程序员需要将汉字转换为Unicode以便处理。 - **网页开发**:网页编码通常使用UTF-8,这是一种基于Unicode的编码格式,开发者在处理中文字符时会用到这种转换。 - **...
Unicode码转换工具就是专门用来处理这种编码转换的软件,尤其对于中文字符,它能够帮助我们将汉字转换成Unicode编码形式,或者将Unicode编码还原为可读的汉字。 Unicode编码系统采用16位或32位的二进制数来表示每一...
有的时候,遇见中文都被转化成了Unicode内码,看着很不爽,于是写了这么个小工具,用来将Unicode内码转换为中文,可以实现整篇的转换。 另外,此工具也可以将中英文转换为Unicode内码(您可以选择是否将英文转换)...
本源码是一个中文汉字与Unicode编码转换工具,采用WinForm进行开发,实现中文...菜单功能:1、中文汉字转换成Unicode编码2、Unicode编码转换成中文汉字注意事项:1、开发环境为Visual Studio 2012,使用.net 4.5开发。
《ASCII与Unicode转换工具v2.3.3详解》 在计算机世界中,字符编码扮演着至关重要的角色,它使得计算机能理解和处理人类语言。ASCII和Unicode是两种广泛使用的字符编码标准,它们各自有着独特的特点和应用场景。...
小巧好用的编码转换工具,输入中文,一点按钮就出来转换后的unicode
在IT领域,Unicode是一种标准化的字符...这个“unicode转换工具集合”对于处理多语言环境下的数据转换和解析非常有用,无论你是开发者还是日常用户,掌握这类工具的使用都能提升你在处理字符编码问题上的效率和准确性。
Unicode批量转换工具是一种实用软件,专门设计用于帮助用户将TXT文本文件批量转化为Unicode编码格式。在信息技术领域,Unicode是一个国际标准,它定义了一个字符集,包括世界上几乎所有的书写系统,确保了不同语言的...
五号影院提供的这个“非常好的Unicode编码转换工具”是一款专门用于Unicode编码与汉字之间相互转换的应用程序。对于电影网站的站长来说,这样的工具尤其有用,因为他们可能需要处理来自不同地区的用户评论或者元数据...
汉字UNICODE转换工具