轉載請注明出處: golang實現中文漢字轉拼音
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實現中文漢字轉拼音