前言

常见的通讯录都是按首字母来排序的,想象一下你要实现一个首字母排序的功能,若是全英文,那将会是一件很轻松的事情,一般语言层面就会提供排序方法,亦或自己实现也不是难事,那如果存在中文呢?这个时候你就要获取中文第一个文字的拼音首字母了,今天聚焦一下如果获取中文的首字母。

技术要点

技术要点主要在找到中文和首字母的映射关系,正好GB 2312编码对所收汉字进行了“分区”处理,16-55区为一级汉字,按拼音排序,因此使用GB 2312编码可以满足我们的基本需求。

方案

获取中文字符串的第一个字符

将第一个字符编码转为GBK编码(GBK编码是对GB2312编码的扩展,完全兼容GB2312-80标准)

获取第一个字符的16进制

将第一个字符的16进制转十进制

判断第一个字符十进制落在GB 2312的某个字母区间即为某个字母

具体DEMO实现

// 获取中文字符串第一个首字母

上述完整demo可以戳这里:demo

总结

主要难点在于GB 2312编码的结构,不懂的小伙伴可以去了解一下GB 2312编码。

中文 转gbk编码_go查找中文首字母相关推荐

  1. Java中获取GBK编码汉字的拼音首字母(包括生僻字)

    Java中获取GBK编码汉字的拼音首字母(包括生僻字) 前言 代码 结果 前言 网上关于Java中获取汉字的拼音首字母的方法很多,但大多基于GB2312的汉字所属编码位置判断方法,现有一种基于GBK编 ...

  2. php 中文转拼音,可以只转首字母,可以设置utf8、gbk

    <?phpclass Pinyin {/*** 默认是gb编码,第二个参数随意设置即为utf8编 * @param type $isInitial 是否只返回首字母* @return type* ...

  3. sublime报错信息乱码_解决Sublime Text 3在GBK编码下的中文乱码问题

    按ctrl+~快捷键,调出一个小文本款,然后粘贴以下代码: import urllib.request,os,hashlib; h = '7183a2d3e96f11eeadd761d777e6240 ...

  4. mysql转拼音首字母大写_Mysql中文汉字转拼音的实现  mysql首字母转化为大写

    这篇文章主要介绍了Mysql中文汉字转拼音的实现,并且每个汉字会转换全拼,使用Mysql自定义函数实现,需要的朋友可以参考下 第一步:我们将在mysql中新建必要的函数 一.创建拼音对照表 -- 创建 ...

  5. C# 中文GBK编码转化

    中文转化GBK编码 System.Web.HttpUtility.UrlEncode("中国",Encoding.GetEncoding("GBK")) GBK ...

  6. C#编写Rtf文档,中文与字母区分,C#将汉字转换成GBK编码

    最近两天在调试仰邦的LED双色屏.他们用的控制卡只能支持三种自定义传参方式,一.文本传值,二.Rtf文档传值,三.bmp图片传值.第一种第三种在仓库中传值无法做到.其主要原因是传的数据比较的多.对于R ...

  7. 谈谈对中文乱码,编码的理解 java python

    中文乱码问题研究结论 java python 字库表?编码字符集?字符编码? 编码,解码 数据读,写 中文乱码 分析一个java代码输出乱码的实例 这些问题一直困扰我很久,其实也不是什么大问题,每次遇 ...

  8. unicode编码转gb2312编码并显示中文(cjava)

    unicode编码转gb2312编码并显示中文(c&java) unicode编码与gb2312编码没有线性关系,只能通过使用编码表的方式查找. C语言 编码表中,前半部分是gb2312编码, ...

  9. GBK转UTF-8时,奇数个中文会乱码,偶数个中文不会乱码

    遇到的问题的场景: 两个后台服务器交互,两个项目的默认编码都是UTF-8,但是当交互时(A->B),就会出现奇数个中文时会乱码. 分析原因: GBK转UTF-8时,奇数个中文会乱码,偶数个中文不 ...

最新文章

  1. linux下启动jconsole报 java.lang.UnsatisfiedLinkError
  2. 【Linux学习九】负载均衡
  3. jenkins安装插件一直不动
  4. windows11图文安装流程
  5. Train Problem II 卡特兰裸题(入门题)
  6. Intent各种flag解析。
  7. Spring Boot 构建RESTful Web服务
  8. Request 对象、重定向、请求转发
  9. [设计模式] - Singleton单例模式
  10. java自动生成函数注释_IDEA类和方法注释自动生成(2019-08-31 21:47写)
  11. 无法连接终端授权服务器,许可证已过期的客户端可能无法连接到终端服务器的解决方案...
  12. LaTex安装及快速入门使用
  13. 同济大学高等数学下册第八章向量代数与空间解析几何以及每日一题
  14. python自动更新国内IP地址合集
  15. 华为鸿蒙系统正式登场,曝华为鸿蒙2.0将于6月2日正式登场 用户可一键升级成鸿蒙系统...
  16. 【早期笔记】java 开发环境搭建
  17. windows 查看/清除DNS解析记录
  18. 今日收获:CSS基础
  19. 任务管理器--内存篇(上)
  20. 基于STM32F4单片机对步进电机的控制(有代码)

热门文章

  1. ❤️ 给你的Linux把把脉(内存、磁盘、CPU、网络)❤️
  2. 安卓逆向_1 --- 逆向环境配置、APK 文件结构、APK 打包流程
  3. find 和 xargs 和 locate
  4. 关于函数指针调用C++非静态成员
  5. python 识别图形验证码_Python验证码识别
  6. rabbitmq 持久化_RabbitMQ原理与相关操作(三)消息持久化
  7. web大作业介绍自己的家乡_襄阳市恒大名都小学2018—2019年度寒假实践作业
  8. Linux的Xshell连接Centos7能Ping通但无法连接问题[ssh(d)+firewall(d)]【转载转载转载】
  9. mysql 创建新用户权限_MySQL创建新用户以及权限授予
  10. 消消乐实现下坠_JavaScript有多强大,实现消消乐小游戏