日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA——Unicode编码格式工具类

發(fā)布時(shí)間:2024/10/5 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA——Unicode编码格式工具类 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Maven

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.4.3</version></dependency>

解決方案?

HexadecimalUtil?

package cn.edu.zstu.myzstu.utils.core.util;import cn.hutool.core.util.HexUtil;/*** @author ShenTuZhiGang* @version 1.0.0* @date 2020-09-23 13:24*/ public class HexadecimalUtil extends HexUtil {/*** 用于建立十六進(jìn)制字符的輸出的小寫字符數(shù)組*/private static final char[] DIGITS_LOWER = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};/*** 用于建立十六進(jìn)制字符的輸出的大寫字符數(shù)組*/private static final char[] DIGITS_UPPER = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};public static String toHexadecimal(char ch) {return toHexadecimal(ch,false);}/*** 將指定char值轉(zhuǎn)換為Unicode字符串形式,常用于特殊字符(例如漢字)轉(zhuǎn)Unicode形式<br>* 轉(zhuǎn)換的字符串如果不足4位,則前面用0填充,例如:** <pre>* '我' =4f60* </pre>** @param ch char值* @return Unicode表現(xiàn)形式* @since 4.0.1*/public static String toHexadecimal(char ch,Boolean toUpperCase) {final char [] DIGITS = toUpperCase?DIGITS_UPPER:DIGITS_LOWER;return "" +//DIGITS[(ch >> 12) & 15] +//DIGITS[(ch >> 8) & 15] +//DIGITS[(ch >> 4) & 15] +//DIGITS[(ch) & 15];}}

UnicodeUtil?

package cn.edu.zstu.myzstu.utils;import cn.edu.zstu.myzstu.utils.core.util.HexadecimalUtil; import cn.hutool.core.text.StrBuilder; import cn.hutool.core.util.CharUtil; import cn.hutool.core.util.HexUtil; import cn.hutool.core.util.StrUtil;/*** 提供Unicode字符串和普通字符串之間的轉(zhuǎn)換** @author ShenTuZhiGang* @version 1.0.0* @date 2020-09-22 23:59*/ public class UnicodeUtil {/*** Unicode字符串轉(zhuǎn)為普通字符串<br>* Unicode字符串的表現(xiàn)方式為:\\uXXXX** @param unicode Unicode字符串* @return 普通字符串*/public static String toString(String unicode) {if (StrUtil.isBlank(unicode)) {return unicode;}final int len = unicode.length();StrBuilder sb = StrBuilder.create(len);int i;int pos = 0;while ((i = StrUtil.indexOfIgnoreCase(unicode, "\\u", pos)) != -1) {sb.append(unicode, pos, i);//寫入U(xiǎn)nicode符之前的部分pos = i;if (i + 5 < len) {char c;try {c = (char) Integer.parseInt(unicode.substring(i + 2, i + 6), 16);sb.append(c);pos = i + 6;//跳過整個(gè)Unicode符} catch (NumberFormatException e) {//非法Unicode符,跳過sb.append(unicode, pos, i + 2);//寫入"\\u"pos = i + 2;}} else {//非Unicode符,結(jié)束break;}}if (pos < len) {sb.append(unicode, pos, len);}return sb.toString();}/*** 字符串編碼為Unicode形式** @param str 被編碼的字符串* @return Unicode字符串*/public static String toUnicode(String str) {return toUnicode(str, true);}/*** 字符串編碼為Unicode形式** @param str 被編碼的字符串* @param format 16進(jìn)制Unicode編碼格式* @return*/public static String toUnicode(String str,UnicodeEncodingFormat format) {return toUnicode(str, true,format);}/*** 字符串編碼為Unicode形式** @param str 被編碼的字符串* @param isSkipAscii 是否跳過ASCII字符(只跳過可見字符)* @return Unicode字符串*/public static String toUnicode(String str, boolean isSkipAscii) {return toUnicode(str, isSkipAscii, UnicodeEncodingFormat.BACKSLASH_U);}/*** 字符串編碼為Unicode形式** @param str 被編碼的字符串* @param isSkipAscii 是否跳過ASCII字符(只跳過可見字符)* @param format 16進(jìn)制Unicode編碼格式* @return Unicode字符串*/public static String toUnicode(String str, boolean isSkipAscii,UnicodeEncodingFormat format) {if (StrUtil.isEmpty(str)) {return str;}final int len = str.length();final StrBuilder unicode = StrBuilder.create(str.length() * 6);char c;for (int i = 0; i < len; i++) {c = str.charAt(i);if (isSkipAscii && CharUtil.isAsciiPrintable(c)) {unicode.append(c);} else {unicode.append(String.format(format.format,HexadecimalUtil.toHexadecimal(c),format.toUpperCase));}}return unicode.toString();}/*** 16進(jìn)制Unicode編碼格式*/public enum UnicodeEncodingFormat{BACKSLASH_U("\\u%s",false),BACKSLASH("\\%s",true),BRACKETS("[%s]",false);public String format;public Boolean toUpperCase;UnicodeEncodingFormat(String format,Boolean toUpperCase){this.format = format;this.toUpperCase = toUpperCase;}} }

參考文章

java中unicode utf-8以及漢字之間的轉(zhuǎn)換工具類

總結(jié)

以上是生活随笔為你收集整理的JAVA——Unicode编码格式工具类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品日韩欧美 | 操比视频网站 | www夜夜| 香蕉久久网站 | 国产精品综合久久 | 日本青青草视频 | 精品国产一二三区 | 国内三级视频 | 中文字幕看片 | 久久99草| 亚洲经典一区二区 | 青青青手机视频在线观看 | 国产精品第二页 | 91麻豆精品视频 | 在线免费看mv的网站入口 | 国产乱码精品一区二区三区中文 | av新天堂 | 一本久道综合色婷婷五月 | 亚洲一级片免费 | 国产视频手机在线播放 | 国产综合久久久久 | 欧美精品一级二级三级 | 99在线国产 | 中文在线一区 | 亚洲系列第一页 | 国产美女在线免费观看 | 日韩视频三区 | 亚洲精品国产无码 | 好男人www日本 | 人妻体内射精一区二区三区 | gv天堂gv无码男同在线观看 | 第一色影院 | www.xxx在线观看 | 欧美xxxx18| 精品中文字幕一区二区 | 爱综合网| 91无限观看 | 超碰在线观看av | 自拍色图| 日本xx视频 | 天天操网| 国产精品av一区二区 | 成人精品视频一区二区 | 好吊妞视频一区二区三区 | 成人影视网址 | 成人a v视频 | 精品久久久久久无码中文野结衣 | 欧美欧美欧美 | 欧美一本| 永久免费网站直接看 | 手机av网址| 国产精品美女久久久久 | 国产午夜视频在线播放 | 一道本在线播放 | 一级高清毛片 | 久久精品10 | 日韩黄色网页 | 在线波多野结衣 | 欧美性猛交69 | 国产激情无套内精对白视频 | a在线一区 | 我要看一级片 | 精品少妇一区二区三区免费观看 | 六月综合| 国产自产在线视频 | 国产深夜视频 | 欧美日本另类 | 91黄色在线视频 | 欧美高清一区二区三区四区 | 欧美在线综合 | 捆绑无遮挡打光屁股调教女仆 | 日本不卡三区 | 国产高潮在线观看 | 孕妇毛片| 久久国产99| 中文字幕在线播放一区二区 | 美女在线播放 | 欧美美女啪啪 | 中文字幕一区二区人妻 | 欧洲-级毛片内射 | 国产又粗又硬又长又爽的演员 | 日韩激情视频 | 国产一区综合 | 黄色大片中文字幕 | 在线观看免费黄视频 | 国产精品久久AV无码 | 狠狠干in| 国产精品久久久久久久久久免费 | 久草最新视频 | 亚洲午夜久久 | 麻豆网站入口 | 艳母日本动漫在线观看 | 久久一热 | 国产又黄又大又粗的视频 | 国产又粗又猛又黄又爽的视频 | 啪啪自拍 | 青青草视频在线观看 | 精品欧美一区二区精品久久 | 欧美激情视频一区二区三区不卡 |