导语:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英文。 官方demo 参考了GitHub.com/mozil
导语:新用户入职 创建一系列账号比较麻烦,打算通过接口传入姓名进行初始化。想把姓名转化成拼音。因为有些账号即需要中文也需要英文。
官方demo 参考了GitHub.com/mozillazg/Go-pinyin
搜到github.com/Chain-Zhang/pinyin的资料多一点,但貌似不维护了。
package main
import (
"fmt"
"github.com/mozillazg/go-pinyin"
)
func main() {
hans := "中国人"
// 默认
a := pinyin.NewArgs()
fmt.Println(pinyin.Pinyin(hans, a))
// [[zhong] [guo] [ren]]
// 包含声调
a.Style = pinyin.Tone
fmt.Println(pinyin.Pinyin(hans, a))
// [[zhōng] [guó] [rén]]
// 声调用数字表示
a.Style = pinyin.Tone2
fmt.Println(pinyin.Pinyin(hans, a))
// [[zho1ng] [guo2] [re2n]]
// 开启多音字模式
a = pinyin.NewArgs()
a.Heteronym = true
fmt.Println(pinyin.Pinyin(hans, a))
// [[zhong zhong] [guo] [ren]]
a.Style = pinyin.Tone2
fmt.Println(pinyin.Pinyin(hans, a))
// [[zho1ng zho4ng] [guo2] [re2n]]
fmt.Println(pinyin.LazyPinyin(hans, pinyin.NewArgs()))
// [zhong guo ren]
fmt.Println(pinyin.Convert(hans, nil))
// [[zhong] [guo] [ren]]
fmt.Println(pinyin.LazyConvert(hans, nil))
// [zhong guo ren]
}
我想要的是后期把中文传入并转换成拼音 类似于用户名。
创建main.go
package main
import (
"fmt"
"github.com/mozillazg/go-pinyin"
"strings"
"reflect"
"github.com/astaxie/beego"
)
func main() {
hans := "中国人"
a := pinyin.LazyConvert(hans, nil)
// [zhong guo ren]
var test []string = []string{}
for a, v := range a{
beego.Info(v)
beego.Info(a)
if a == 0 {
test = append(test, v)
} else {
test = append(test, ",")
test = append(test, v)
}
}
beego.Info("处理1")
beego.Info(test)
// 通过这一条处理 strings.Trim
result := strings.Trim(fmt.Sprint(test), "[]")
// result := strings.Replace(strings.Trim(fmt.Sprint(test), "[]"), " ", ",", -1)
beego.Info(result)
beego.Info(reflect.TypeOf(result))
result2 := strings.Replace(result, " , ", "", -1)
beego.Info(result2)
// zhongguoren
}
go get -u github.com/mozillazg/go-pinyin
go run main.go
结果图
到此这篇关于golang实现将中文转化为拼音的文章就介绍到这了,更多相关Golang中文转拼音内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: Golang实现将中文转化为拼音
本文链接: https://lsjlt.com/news/194146.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0