unicode码表转换(输入某个字符)

我先考一考你,你说这个字符串(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位编码的在线转换工具

http://www.jdkba.com/char

秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(0)

大家都在看

  • 路由器多少钱一个(家用路由器多少钱一台)

    现如今Wi-Fi可以说是家庭中的必备了,想要获得更好的上网体验,挑选一款好用的路由器毋庸置疑。但对于家庭用户来说,路由器产品应当如何挑选呢?从市面上的路由器价格来看,便宜的有一百元…

    2022年3月16日 投稿
  • 排行榜歌曲(好听歌曲排行榜前十名)

    最近大家都在分享自己的2021年度金曲,每个人都有着自己心中的答案,也有着自己的标准。 所以,各位在看一些数据的时候,不妨看成是个人向的榜单即可。 比如耳帝制作的2021年度歌曲榜…

    2022年6月11日 投稿
  • 数据软件有哪些(大数据软件和分析工具)

    数据分析是对数据进行摄取、转换和可视化的过程,用来发掘对业务决策有用的洞见。 在过去的十年中,越来越多的数据被收集,客户希望从数据中获得更有价值的洞见。他们还希望能在最短的时间内(…

    2022年2月27日 投稿
  • 古诗宿建德江,古诗《宿建德江》的意思是什么?

      古诗《宿建德江》的意思是古诗宿建德江:把小船停靠在烟雾迷蒙的小洲,日暮时分新愁又涌上客子心头。旷野无边无际远天比树还低沉,江水清清明月来和人相亲相近。原文如下:《宿建德江》?唐…

    2022年5月29日
  • 多地开打新冠疫苗加强针 专家解读!哪些人可以打?这2类人是重点

    我国新冠疫苗接种工作一直在进行当中,在今年上半年着重接种新冠疫苗第一剂次和第二剂次,从下半年开始多地开打新冠疫苗加强针。而针对加强针,专家进行了解读,那具体哪些人可以打新冠疫苗加强…

    2022年2月13日
  • 苹果x运行是多少g(苹果12多少g运行内存)

    苹果手机的领导作用一直都很强,因为全球用户都知道iPhone品质好,所以一直把iPhone的外观设计、核心配置等当成是手机界的主流。 既然用户喜欢iPhone的样子,那安卓厂商为了…

    2022年5月28日 投稿
  • 软中华多少钱一包(软中华65元和70元区别)

    我国是世界烟草生产和消费最大的国家,吸烟率在38%以上,有资料统计,世界吸烟的人数正在下降,而以此同时,中国烟民队伍却正在向低龄化发展。 警惕!烟民正在向低龄化发展 数据显示,80…

    2022年3月21日 投稿
  • 哪个银行贷款利率最低(贷款利率最低的银行)

    很多人在申请贷款时,都会对比一下申贷银行的贷款利率。毕竟一般人去银行申请贷款的话,额度都不会很低,贷款利率算下来,也是一笔不小的钱。有朋友咨询,贷款哪家银行利息最低最靠谱?认准这几…

    2022年5月25日
  • 三江源指的是哪三江(简介三江源的发源地)

    三江源位于我国青海省南部,是世界屋脊,青藏高原的腹地,是长江、黄河和澜沧江的源头汇水区。   三江源地区是青藏高原的腹地和主体,以山地地貌为主,山脉绵延、地势高耸、地形复杂,海拔为…

    2021年6月13日
  • 看牙齿医保可以报销吗(看牙齿用医保卡报销吗)

    我国医疗保险的原则是多层次、广覆盖、保基本、可持续。医保的目的是保证老百姓基本医疗的需要,过去对于口腔科医疗耗材是没有纳入医疗保险的医药耗材的目录范围的,补牙也没有纳入医疗报销的目…

    2022年3月11日 投稿
品牌推广 在线咨询
返回顶部