轉(zhuǎn)載請注明出處: golang實現(xiàn)中文漢字轉(zhuǎn)拼音
Golang
- 介紹
在一些的開發(fā)中鸵钝,可能會遇到一些需要把中文漢字轉(zhuǎn)成拼音的需求疲迂,在這里自己簡單的用 golang 實現(xiàn)了一下中文轉(zhuǎn)拼音的庫。歡迎各位大佬前來指正朱嘴。
2. 實現(xiàn)原理
實現(xiàn)起來的話倾鲫,也非常簡單,是將所有的漢字對應(yīng)的 rune碼萍嬉,對應(yīng)上它的拼音乌昔,也即是,有一個這樣的 map[rune]string, 其中 key 為漢字的 rune碼壤追,value 就是漢字的拼音了磕道。這個 map 是通過文件來生成的。文件內(nèi)容如下:
3400=>qiū
3401=>tiàn
3404=>kuà
3405=>wǔ
3406=>yǐn
340C=>yí
3416=>xié
341C=>chóu
其中的拼音都是帶聲調(diào)的行冰。不需要聲調(diào)的話溺蕉,可以替換成沒有聲調(diào)的字符。
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
: 首字母大寫, 不帶音調(diào) -
WithoutTone
: 全小寫,不帶音調(diào) -
Tone
: 全小寫帶音調(diào)
Split 介紹
split 方法是兩個漢字之間的分隔符.
完
轉(zhuǎn)載請注明出處:golang實現(xiàn)中文漢字轉(zhuǎn)拼音