转载请注明出处: golang实现中文汉字转拼音
![](http://upload-images.jianshu.io/upload_images/4822713-0464f13ee77ea44b.png)
Golang
- 介绍
在一些的开发中,可能会遇到一些需要把中文汉字转成拼音的需求,在这里自己简单的用 golang 实现了一下中文转拼音的库。欢迎各位大佬前来指正。
2. 实现原理
实现起来的话,也非常简单,是将所有的汉字对应的 rune码,对应上它的拼音,也即是,有一个这样的 map[rune]string, 其中 key 为汉字的 rune码,value 就是汉字的拼音了。这个 map 是通过文件来生成的。文件内容如下:
3400=>qiū
3401=>tiàn
3404=>kuà
3405=>wǔ
3406=>yǐn
340C=>yí
3416=>xié
341C=>chóu
其中的拼音都是带声调的。不需要声调的话,可以替换成没有声调的字符。
3. 源码
4. 使用 demo
安装:
go get github.com/chain-zhang/pinyin
package main
import(
"fmt"
"github.com/chain-zhang/pinyin"
)
func main() {
str, err := pinyin.New("我是中国人").Split("").Mode(InitialsInCapitals).Convert()
if err != nil {
// 错误处理
}else{
fmt.Println(str)
}
str, err = pinyin.New("我是中国人").Split(" ").Mode(pinyin.WithoutTone).Convert()
if err != nil {
// 错误处理
}else{
fmt.Println(str)
}
str, err = pinyin.New("我是中国人").Split("-").Mode(pinyin.Tone).Convert()
if err != nil {
// 错误处理
}else{
fmt.Println(str)
}
str, err = pinyin.New("我是中国人").Convert()
if err != nil {
// 错误处理
}else{
fmt.Println(str)
}
}
输出
WoShiZhongGuoRen
wo shi zhong guo ren
wǒ-shì-zhōng-guó-rén
wo shi zhong guo ren
Mode 介绍
-
InitialsInCapitals
: 首字母大写, 不带音调 -
WithoutTone
: 全小写,不带音调 -
Tone
: 全小写带音调
Split 介绍
split 方法是两个汉字之间的分隔符.
完
转载请注明出处:golang实现中文汉字转拼音