代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
将中文转换成unicode
作者:
Dezai.CN
/ 发布于
2012/3/6
/
530
<div>/**</div> <div>* CharacterSetToolkit.java</div> <div>*</div> <div>* Created on 2007年5月17日, 上午11:04</div> <div>*</div> <div>* To change this template, choose Tools | Template Manager</div> <div>* and open the template in the editor.</div> <div>*/</div> <div></div> <div>package mobi.chenwei.util;</div> <div></div> <div>/**</div> <div>* 进行字符操作的工具类。</div> <div>* @author ChenWei</div> <div>* @website www.chenwei.mobi</div> <div>* @email chenweionline@hotmail.com</div> <div>*/</div> <div>public class CharacterSetToolkit {</div> <div> </div> <div> /** Creates a new instance of CharacterSetToolkit */</div> <div> public CharacterSetToolkit() {</div> <div> } <div> </div> <div> private static final char[] hexDigit = {</div> <div> '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'</div> <div> };</div> <div> </div> <div> private static char toHex(int nibble) {</div> <div> return hexDigit[(nibble & 0xF)];</div> <div> } <div> </div> <div> /**</div> <div> * 将字符串编码成 Unicode 。</div> <div> * @param theString 待转换成Unicode编码的字符串。</div> <div> * @param escapeSpace 是否忽略空格。</div> <div> * @return 返回转换后Unicode编码的字符串。</div> <div> */</div> <div> public static String toUnicode(String theString, boolean escapeSpace) {</div> <div> int len = theString.length();</div> <div> int bufLen = len * 2;</div> <div> if (bufLen < 0) {</div> <div> bufLen = Integer.MAX_VALUE;</div> <div> } <div> StringBuffer outBuffer = new StringBuffer(bufLen);</div> <div> </div> <div> for(int x=0; x<len; x++) {</div> <div> char aChar = theString.charAt(x);</div> <div> // Handle common case first, selecting largest block that</div> <div> // avoids the specials below</div> <div> if ((aChar > 61) && (aChar < 127)) {</div> <div> if (aChar == '\\') {</div> <div> outBuffer.append('\\'); outBuffer.append('\\');</div> <div> continue;</div> <div> } <div> outBuffer.append(aChar);</div> <div> continue;</div> <div> } <div> switch(aChar) {</div> <div> case ' ':</div> <div> if (x == 0 || escapeSpace)</div> <div> outBuffer.append('\\');</div> <div> outBuffer.append(' ');</div> <div> break;</div> <div> case '\t':outBuffer.append('\\'); outBuffer.append('t');</div> <div> break;</div> <div> case '\n':outBuffer.append('\\'); outBuffer.append('n');</div> <div> break;</div> <div> case '\r':outBuffer.append('\\'); outBuffer.append('r');</div> <div> break;</div> <div> case '\f':outBuffer.append('\\'); outBuffer.append('f');</div> <div> break;</div> <div> case '=': // Fall through</div> <div> case ':': // Fall through</div> <div> case '#': // Fall through</div> <div> case '!':</div> <div> outBuffer.append('\\'); outBuffer.append(aChar);</div> <div> break;</div> <div> default:</div> <div> if ((aChar < 0x0020) || (aChar > 0x007e)) {</div> <div> outBuffer.append('\\');</div> <div> outBuffer.append('u');</div> <div> outBuffer.append(toHex((aChar >> 12) & 0xF));</div> <div> outBuffer.append(toHex((aChar >> 8) & 0xF));</div> <div> outBuffer.append(toHex((aChar >> 4) & 0xF));</div> <div> outBuffer.append(toHex( aChar & 0xF));</div> <div> } else {</div> <div> outBuffer.append(aChar);</div> <div> } <div> } <div> } <div> return outBuffer.toString();</div> <div> } <div> </div> <div> /**</div> <div> * 从 Unicode 码转换成编码前的特殊字符串。</div> <div> * @param in Unicode编码的字符数组。</div> <div> * @param off 转换的起始偏移量。</div> <div> * @param len 转换的字符长度。</div> <div> * @param convtBuf 转换的缓存字符数组。</div> <div> * @return 完成转换,返回编码前的特殊字符串。</div> <div> */</div> <div> public String fromUnicode(char[] in, int off, int len, char[] convtBuf) {</div> <div> if (convtBuf.length < len) {</div> <div> int newLen = len * 2;</div> <div> if (newLen < 0) {</div> <div> newLen = Integer.MAX_VALUE;</div> <div> } <div> convtBuf = new char[newLen];</div> <div> } <div> char aChar;</div> <div> char[] out = convtBuf;</div> <div> int outLen = 0;</div> <div> int end = off + len;</div> <div> </div> <div> while (off < end) {</div> <div> aChar = in[off++];</div> <div> if (aChar == '\\') {</div> <div> aChar = in[off++];</div> <div> if (aChar == 'u') {</div> <div> // Read the xxxx</div> <div> int value = 0;</div> <div> for (int i = 0; i < 4; i++) {</div> <div> aChar = in[off++];</div> <div> switch (aChar) {</div> <div> case '0':</div> <div> case '1':</div> <div> case '2':</div> <div> case '3':</div> <div> case '4':</div> <div> case '5':</div> <div> case '6':</div> <div> case '7':</div> <div> case '8':</div> <div> case '9':</div> <div> value = (value << 4) + aChar - '0';</div> <div> break;</div> <div> case 'a':</div> <div> case 'b':</div> <div> case 'c':</div> <div> case 'd':</div> <div> case 'e':</div> <div> case 'f':</div> <div> value = (value << 4) + 10 + aChar - 'a';</div> <div> break;</div> <div> case 'A':</div> <div> case 'B':</div> <div> case 'C':</div> <div> case 'D':</div> <div> case 'E':</div> <div> case 'F':</div> <div> value = (value << 4) + 10 + aChar - 'A';</div> <div> break;</div> <div> default:</div> <div> throw new IllegalArgumentException(</div> <div> "Malformed \\uxxxx encoding.");</div> <div> } <div> } <div> out[outLen++] = (char) value;</div> <div> } else {</div> <div> if (aChar == 't') {</div> <div> aChar = '\t';</div> <div> } else if (aChar == 'r') {</div> <div> aChar = '\r';</div> <div> } else if (aChar == 'n') {</div> <div> aChar = '\n';</div> <div> } else if (aChar == 'f') {</div> <div> aChar = '\f';</div> <div> } <div> out[outLen++] = aChar;</div> <div> } <div> } else {</div> <div> out[outLen++] = (char) aChar;</div> <div> } <div> } <div> return new String(out, 0, outLen);</div> <div> } <div>} <div></div>
试试其它关键字
中文转换成unicode
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3