国际码和内码的转换在线「最新区位码转国标码工具」

今天朱瀚给大家带来了这篇国际码和内码的转换在线,区位码转国标码工具干货,以及关于汉字,内码,字符这些的相关干货,既然来了就别走了,好好的静下心把这篇文章阅读完相信你会有一定的收获哦!

我先考一考你,你说这个字符串(ab一2?仯3?4)有多少个字符?

这时候你也许开始数了,123…9个,没错,确实我们肉眼确实是看到了9个,java代码如下:

汉字,中文,内码互转,unicode编码转换,汉字机内码转换

有没有发现java判断出来的不是9,而是12!!!

那是因为这个字符串中有2个字符ab一2?仯3?4用黄色表示,实际上UTF-8已经满足不了,? 见下图:

汉字,中文,内码互转,unicode编码转换,汉字机内码转换

java的String是使用UTF-16来表示的,U+0000-U+FFFF都ok,但是只要是下列这个区间的字符都无法用常规手段处理,5位内码的,用length都无法正确判断其长度

CJK Unified Ideographs Extension B (U+20000 through U+2A6DD)
CJK Unified Ideographs Extension C (U+2A700 through U+2B734)
CJK Unified Ideographs Extension D (U+2B740 through U+2B81D)
CJK Unified Ideographs Extension E (U+2B820 through U+2CEA1)
CJK Unified Ideographs Extension F (U+2CEB0 through U+2EBE0)

具体也可以查看官方资料 ,了解unicode,UTF-8,UTF-16,UTF-32的区别。

如下图,可以通过Character中的codePointCount来得到字符数量。

汉字,中文,内码互转,unicode编码转换,汉字机内码转换

进入主题

jdk自带的Character类特别好用,汉字转内码,内码转汉字具体功能请参考下面的代码

/**
 * 字符串转16进制内码
 * @param str ab一2?仯3?4
 * @return \u61\u62\u4e00\u32\u2b802\u4eef\u33\u2b82f\u34\u34
 */
public static String stringToCodePoints(String str) {
    StringBuilder stringBuilder = new StringBuilder();
    str.codePoints().forEach(cp -> stringBuilder.append("\u").append(Integer.toHexString(cp)));
    return stringBuilder.toString();
}

/**
 * 内码转汉字
 * @param codePoints \u61\u62\u4e00\u32\u2b802\u4eef\u33\u2b82f\u34\u34
 * @return ab一2?仯3?4
 */
public static String codePointsToString(String codePoints) {
    StringBuilder stringBuilder = new StringBuilder();
    for(String hexCodePoint : codePoints.split("\\u")){
        if(StringUtils.isNotBlank(hexCodePoint)) {
            stringBuilder.append(codePointToString(Integer.parseInt(hexCodePoint, 16)));
        }
    }
    return stringBuilder.toString();
}

/**
 * 十进制转汉字
 * @param cp code point 汉字内码
 * @return
 */
public static String codePointToString(int cp) {
    StringBuilder sb = new StringBuilder();
    if (Character.isBmpCodePoint(cp)) {
        sb.append((char) cp);
    } else if (Character.isValidCodePoint(cp)) {
        sb.append(Character.highSurrogate(cp));
        sb.append(Character.lowSurrogate(cp));
    } else {
        sb.append('?');
    }
    return sb.toString();
}

支持5位编码的在线转换工具

好了,今天就说到这里了,希望对你有帮助,国际码和内码的转换在线「最新区位码转国标码工具」这篇文章让你学习到一些知识的话,那就帮忙分享给你朋友吧!

本文发布者:管理员,不代表寂寞网立场,转载请注明出处:https://www.jimowang.com/p/27176.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jimowangmail@126.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年1月4日 09:17
下一篇 2023年1月4日 09:19

相关推荐

  • 五红汤用白皮花生可以吗 以及五红汤不用红皮花生可以吗

    各位朋友们大家好,今天杨于桐准备了一些关于五红汤用白皮花生可以吗,五红汤不用红皮花生可以吗的干货,还有花生,红糖,枸杞,红枣,孕妇的一些实用干货和最新内容分享,阅读这篇文章之后,我相信你会更加深入地理解这个领域的基础知识。 五红汤是比较常见的一种滋补汤,它是用红枣、红豆、红枸杞、红糖以及红皮花生制作的。花生有白皮花生也有红皮花生,相对比而言,红皮花生更有营养…

    2023年4月30日
  • 1卢布等于1元人民币是误读「秒懂:并非兑换汇率」

    哈喽,小伙伴们大家好,今天尤凤秋说的这篇文章1卢布等于1元人民币是误读,并非兑换汇率,还有关于人民币,货币,汇率,国家,美元等等其他相关干货,希望你认真看完这篇文章后,能充分理解我想表达的意思。相信你很快就能掌握!你离大牛越来越近了! 在不同的国家会有不同的使用货币,当然打算去不同的国家旅游或者消费,可以去兑换货币,大家肯定想要知道不同货币兑换的汇率情况了,…

    2023年1月24日
  • 苹果专用来电铃声有哪些:最新推荐100首经典好听的歌曲

    小伙伴们大家好,今天钱煜睿讲的文章是苹果专用来电铃声有哪些,推荐100首经典好听的歌曲,以及关于铃声,助手,手机这些一系列的精品相关干货,精心为你准备的干货,通过这篇文章相信你能有所收货! 相信用iPhone的小伙伴听久了自带的手机铃声,都会想换个自己喜欢的个性铃声,但是却不知道怎么换,iTunes用不来,也找不到合适的m4r铃声文件。今天整理一波抖音上很火…

    2022年11月10日 自媒体
  • ico在线制作软件「最新在线ico图标转换工具」

    美好的1天即将在这里开始,下面就由笔者卫清铧来一起聊聊ico在线制作软件,在线ico图标转换工具,以及图标,手机,尺寸相关的事项,思路很重要,希望我整理分享的这篇文章对你能有一定的帮助! 当我们设计出了一个比较满意的app 图标的时候,这个给到开发哥哥们要的APP图标需要好几种,比如微信、应用市场上的图标大小尺寸都不一样。 需要一键生成各种不同尺寸的手机应用…

    2022年12月24日 自媒体
  • 岁月是把杀猪刀,刀刀不留情,又老了一岁「新手必看:岁月是把杀猪刀不曾饶过谁」

    很高兴又和各位见面啦!这次何汉文想和你们聊聊岁月是把杀猪刀,刀刀不留情,又老了一岁,岁月是把杀猪刀不曾饶过谁,还有关于老婆,岁月,售货员,大姐,裙子这些的相关干货文章,希望各位能认真阅读。因为,只有这样才能真正理解和掌握! 昨天和老婆一块去商场买衣服,漂亮售货员指着一件品牌女装,对我老婆说:“阿姨,这是新款,挺合适你的” 我老婆对售货员说:“请叫我大姐” 我…

    2023年2月20日
  • 为什么中古貂不能买_中古貂皮都是什么人穿过的

    最近有很多朋友问沈希佳关于为什么中古貂不能买,中古貂皮都是什么人穿过的的事情,我来为大家解答一下,还有关于貂皮,现代,制品,质量,价格这些的实用干货和最新内容分享,阅读这篇文章之后,我相信你会更加深入地理解这个领域的基础知识。 中古貂其实就是中古店的貂皮大衣,质量都挺不错的,有的还是大名片,但是属于二手,别人穿过的,并不是全新的,所以才会有人不建议购买,如果…

    2023年5月7日