分享免费的编程资源和教程

网站首页 > 技术教程 正文

汉字如何转换拼音 js JavaScript#计算机

goqiw 2024-09-03 01:33:54 技术教程 15 ℃ 0 评论

汉字转拼音

观众朋友们,不知道大家在工作中有没有遇见过这种情况,比如这是一个输入框,它里边输的值,后端希望你把输入的值转成拼音发给他,比如这个留要转成对应的拼音,然后去发给后端,他根据拼音去进行搜索。

在之前是使用拼音 js 去完成的,我就非常的好奇,他是怎么去把汉字转成拼音的?难道是用了非常各种牛逼的编码的转换吗?后来我就去研究了,发现它并没有使用编码的转换,它是使用了一个 4 万行代码的字典表去实现的,但是字典表实现起来又非常有意思,所以今天来给大家讲讲这个东西是怎么做的。

首先创建了一个字典,这个字典就是一个空对象,假装模拟一下,有个字典,比如搜索留,举个例子,这个就是它的 key,这是它的 key,在后面就是对应它的拼音,对应留,也就是需要把留去传到函数里边,函数就会把留去转成对应的 16 进制,通过 16 进制去匹配拼音。

也就是字符怎么去转成 16 进制?也就是需要完成这么一步操作才能去匹配到这个东西。怎么知道它是 16 进制?其实学过计算机都知道,0X 开头的一般都是 16 进制。

1. 第一步需要先把它转成 10 进制,并且要转成数字,这个就非常简单了,先给它标注一下类型,这样就会有代码提示,就是调这个方法,再把它删掉就可以了。这个方法就是转成 10 进制,并且是数字。

2. 来看一下值,它就转成 10 进制了,并且是数字,它是什么 10 进制?它是 unico 的,它是 Uni code,它是 Unicode 的十进制,也就是说留所对的 Unicode 的十进制的数字,来看一下,然后就对的是这个,希望的是十六进制,所以就比较简单了。

如果它是数字就好做了,可以调用 toString,转成 16 进制就可以了,再去拼上 0X 就可以了,也就这样子,这样传进去就可以去匹配上了,这样就会返回拼音。其实内部的大概就是去做了这么一件事情,把字转成对应的十六进制,然后去返回拼音,所以这个就是大概的实现原理,也是很有意思。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表