中文字符串转换为十六进制Unicode编码字符串
package my.unicode; import java.util.regex.Matcher;
import java.util.regex.Pattern; public class UnicodeSwitchChinese
{
/**
*
* 转:http://blog.csdn.net/z69183787/article/details/25742307
*
* 将字符串(不限于中文)转换为十六进制Unicode编码字符串
*/
public static String stringToUnicode(String str)
{
str = (str == null ? "" : str);
String tmpStr = "";
StringBuffer sb = new StringBuffer(1024);
char c;
int j = 0; for (int i = 0; i < str.length(); i++)
{
c = str.charAt(i);
sb.append("\\u"); j = (c >>> 8); //取出高8位
tmpStr = Integer.toHexString(j);
if (tmpStr.length() == 1)
{
sb.append("0");
}
sb.append(tmpStr); j = (c & 0xFF); //取出低8位
tmpStr = Integer.toHexString(j);
if (tmpStr.length() == 1)
{
sb.append("0");
}
sb.append(tmpStr);
} return (sb.toString());
} /*
* 把十六进制Unicode编码字符串转换为中文字符串
*/
public static String unicodeToString(String str)
{
Pattern pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))"); Matcher matcher = pattern.matcher(str); char ch; while (matcher.find())
{
ch = (char) Integer.parseInt(matcher.group(2), 16); str = str.replace(matcher.group(1), ch + "");
} return str; } public static void main(String[] args)
{
// 0x0075 和 \u0075 是等价的
System.out.println("0x0075:" + (char) 0x0075);
System.out.println("\\u0075:" + '\u0075'); // 直接以Unicode字符串的方式初始化字符串时,会自动转换为汉子
String s1 = "\u005c\u005c\u0075\u662f\u6807\u8bc6\u0075\u006e\u0069\u0063\u006f\u0064\u0065\u7801\u7528\u7684\uff0c\u540e\u9762\u7684\u0034\u4f4d\u0031\u0036\u8fdb\u5236\u6570\u5219\u662f\u5bf9\u5e94\u5b57\u7b26\u7684\u0075\u006e\u0069\u0063\u006f\u0064\u0065\u7801";
System.out.println("s1: " + s1);// 0x0075 // 转换汉字为Unicode码
String s2 = "unicode编码简而言之就是将每一个字符用16位2进制数标识。但是通常都用4位的16进制数标识。";
s2 = UnicodeSwitchChinese.stringToUnicode(s2);
System.out.println("s2: " + s2); // 转换Unicode码为汉字
String s3 = UnicodeSwitchChinese.unicodeToString(s2); System.out.println("s3: " + s3);
}
}
转:http://www.cnblogs.com/skykang/archive/2011/06/02/2068802.html
中文字符 与 十六进制Unicode编码 相互转换(JavaScript)
转:http://www.cnblogs.com/duanhuajian/archive/2013/04/26/3045144.html
POI:
转:https://community.oracle.com/docs/DOC-887397
转:http://blog.csdn.net/spp_1987/article/details/13770637
中文字符串转换为十六进制Unicode编码字符串的更多相关文章
- c# 实现获取汉字十六进制Unicode编码字符串
1. 汉字转十六进制UNICODE编码字符串 /// <summary> /// //// /// </summary> /// & ...
- C# 实现十六进制Unicode编码字符串转换为汉字
网上找了几个方法,但是运行之后会报错,提示要解析的字符串格式不正确.然后我猜想可能是传入的字符串 \u60a8\u4eca\u65e5\u5df2\u7b7e\u5230 中带"\" ...
- python 将列表嵌套字典的unicode字符串转换为str格式的字符串的方法
今天在进行django开发的过程中遇到了一个非常棘手的问题, 因为需求原因, 需要将一份数据存为json格式到数据库中, 如下面这种格式: list_1 = [{"name":&q ...
- String 字符串中含有 Unicode 编码时,转为UTF-8
1.单纯的Unicode 转码 String a = "\u53ef\u4ee5\u6ce8\u518c"; a = new String(a.getBytes("UTF ...
- php urlencode函数 (中文字符转换为十六进制)
urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%. urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其 ...
- pytest文档41-参数化 ids 用例描述为中文时控制台输出unicode编码问题(pytest_collection_modifyitems)
前言 使用 pytest.mark.parametrize 参数化的时候,加 ids 参数用例描述有中文时,在控制台输出会显示unicode编码,中文不能正常显示. 使用 pytest_collect ...
- Js字符串与十六进制的相互转换
开发过程中,字符串与十六进.二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制.下面说说具体的转换方法. 1.字符串转换为十六进制 主要使用 charCodeAt() ...
- Js字符串与十六进制的相互转换 【转】
开发过程中,字符串与十六进.二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制.下面说说具体的转换方法. 1.字符串转换为十六进制 主要使用 charCodeAt() ...
- Python 读取文件中unicode编码转成中文显示问题
Python读取文件中的字符串已经是unicode编码,如:\u53eb\u6211,需要转换成中文时有两种方式 1.使用eval: eval("u"+"\'" ...
随机推荐
- jpa 表字段转bean对象
select 'private ' || decode(v_type, 'int', 'Integer', 'float', 'Double', 'date', 'Date', 'String') | ...
- 触发Full GC执行的情况
除直接调用System.gc外,触发Full GC执行的情况有如下四种. 1. 旧生代空间不足 旧生代空间只有在新生代对象转入及创建为大对象.大数组时才会出现不足的现象,当执行Full GC后空间仍然 ...
- 初步了解Canvas
<--------一些理论储备: ------------------------------------------------------------------------------ ...
- IOS百度地图获取所在的城市名称
笔者的app要实现定位所在省和城市名称,借此总结巩固一下! @interface VenueListVC : BasePageTableViewVC<BMKLocationServiceDele ...
- Struts2 配置文件result的name属性和type属性
Struts2 配置文件result的name属性和type属性:Name属性SUCCESS:Action正确的执行完成,返回相应的视图,success是 name属性的默认值: NONE:表示Act ...
- WPF与WinForm开发有什么区别?
转自http://hi.baidu.com/leoliu83/blog/item/1d1a4a66dcb41134aa184cfd.html WPF开发于WinForm之后,从技术发展的角度,WPF比 ...
- java经典题目
/***********Ryear.java begin********************/ import java.util.Scanner;public class Ryear { /** ...
- Java多线程(转)
文章转自http://286.iteye.com/blog/2292038 谢谢博主的总结! 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位, ...
- eclipse建包出现多层包
- 关于Kean博客的学习
由于我从事设计行业,使用Autocad进行绘图是一件单调但是拥有乐趣的工作. 大约在一年前,接触到了CAD的二次开发的内容,它使我感到新奇,并且决定花时间来研究相关的知识.这时我在网上浏览到了Kean ...