Java 16进制、unicode互转

package service;

import java.util.regex.Matcher;

import java.util.regex.Pattern;
 public class CodeChange {
/*
 *  把中文字符串转换为十六进制Unicode编码字符串
 */
    public static String stringToUnicode(String s) {
        String str = "";
        for (int i = 0; i < s.length(); i++) {
            int ch = (int) s.charAt(i);
            if (ch > 255)
                str += "\\u" + Integer.toHexString(ch);
            else
                str += "\\" + Integer.toHexString(ch);
        }
        return str;
    }

/*
 *  把十六进制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) {
        // 直接以Unicode字符串的方式初始化字符串时,会自动
        String s1 = "\\测\\试\\数\\据\\!";
        System.out.println("s1: " + s1);
        //转换汉字为Unicode码
        String s2 = "测试数据";
        s2 = CodeChange.stringToUnicode(s2);
        System.out.println("s2: " + s2);
        //转换Unicode码为汉字
      String aaa ="\u4ec0\u4e48";
        String s3 = CodeChange.unicodeToString(aaa);
        System.out.println("s3: " + s3);
    }
}
时间: 2024-07-29 02:07:31

Java 16进制、unicode互转的相关文章

URL参数中汉字转换为16进制Unicode形式

导入JAR包: import java.net.*; 把汉字转换为16进制Unicode形式: String xw="新闻中心"; String name=URLEncoder.encode(xw,"utf-8"); 把16进制Unicode形式字符串转换为汉字: URLDecoder.decode("%E6%96%B0%E9%97%BB%E4%B8%AD%E5%BF%83","utf-8"); 注意:从A(UTF-8)页面中

java 16进制与字符串直接相互转换

java 16进制与字符串直接相互转换 CreationTime--2018年7月12日09点39分 Author:Marydon 1.16进制转换成字符串 /** * 16进制直接转换成为字符串 * @explain * @param hexStr 16进制字符串 * @return String */ public static String fromHexString(String hexString) { // 用于接收转换结果 String result = ""; // 转

java 16进制转换10进制

public static String toHexString2(byte[] b) { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < b.length; ++i) { buffer.append(toHexString2(b[i])); } return buffer.toString(); } public static String toHexString2(byte b) { char[] buffer =

Qt实现16进制unicode转utf-8以及国际音标编码问题

由于项目需要,需要对网络资源进行解码.遇到编码问题.研究了下基本编码原理.于是有了下面两个通用代码 [cpp] view plaincopy 1. 16进制unicode转换为utf-8中文显示 QString unicodeToUtf_8(const QString &resStr) { //  unicode转utf-8  思路: 一个unicode编码占用2字节.所以只需要用4个16进制数字结合表示就行了 QString temp; for (int i = 0; i< resStr.

RGB与16进制色互转

点击进入新版 <前端在线工具站> CSS, JavaScript 压缩YUI compressor, JSPacker...HTML特殊符号对照表PNG,GIF,JPG... Base64HTML JS互转URL编码?解码JSON美化.格式化RGB与16进制互转在线编辑运行代码UTF-8  与中文互转 前端开发QQ群 1群:108827104(1000人群) 2群:165509577(1000人群) 3群:40961188(2000人群) 4群:159477439(1000人群) 5群:153

python3 Unicode字符与16进制编码互转(单个字符)

def Unicode2HexChar(Unicde_Char):#Unicode转16进制 Hex_Char = "" for i in range(0, len(Unicde_Char)): Hex_Char += (hex(ord(Unicde_Char[i])).replace('0x','').zfill(4)) return Hex_Char print(Unicode2HexChar('.')) def HexChar2Unicode(Hex_Char):#16进制转Un

java中byte[] 和16进制字符串互转

//将byte[]转换为16进制字符串 public static String byte2hex(byte[] b) { StringBuilder hs = new StringBuilder(); String stmp; for (int n = 0; b != null && n < b.length; n++) { stmp = Integer.toHexString(b[n] & 0XFF); if (stmp.length() == 1) hs.append(

js 16进制字符串互转

/** * 16进制转换为字符串 * @param hex * @returns {*} */ function hexToString(hex) { var tmp = ''; if (hex.length % 2 == 0 ) { for (var i = 0; i < hex.length; i += 2) { tmp += '%' + hex.charAt(i) + hex.charAt(i + 1); } } return decodeURIComponent(tmp); } /**

java 16进制转与汉字相互转换

这个程序非常小,就是一个十六进制与汉字的相互转换,记录下来以后可能用得到 好,直接看代码: 1 public static void main(String[] args) { 2 String ss = "\u6570\u636e\u672a\u5f55\u5165"; 3 System.out.println(ss+"--"); 4 System.out.println(toUnicode("数据未录入")); 5 } 6 public st