Categorygithub.com/mozillazg/go-pinyin
modulepackage
0.20.0
Repository: https://github.com/mozillazg/go-pinyin.git
Documentation: pkg.go.dev

# README

go-pinyin

Build Status Coverage Status Go Report Card GoDoc

汉语拼音转换工具 Go 版。

Installation

go get github.com/mozillazg/go-pinyin

install CLI tool:

# go version>=1.17
go install github.com/mozillazg/go-pinyin/cli/pinyin@latest

# go version<1.17
go get -u github.com/mozillazg/go-pinyin/cli/pinyin

$ pinyin 中国人
zhōng guó rén

Documentation

API documentation can be found here: https://godoc.org/github.com/mozillazg/go-pinyin

Usage

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]
}

注意:

  • 默认情况下会忽略没有拼音的字符(可以通过自定义 Fallback 参数的值来自定义如何处理没有拼音的字符, 详见 示例)。
  • 根据 《汉语拼音方案》 y,w,ü (yu) 都不是声母, 以及不是所有拼音都有声母,如果这不是你预期的话,你可能需要的是首字母风格 FirstLetter详细信息 )。

Related Projects

pinyin data

License

Under the MIT License.

# Functions

Convert 跟 Pinyin 的唯一区别就是 a 参数可以是 nil.
LazyConvert 跟 LazyPinyin 的唯一区别就是 a 参数可以是 nil.
LazyPinyin 汉字转拼音,与 `Pinyin` 的区别是: 返回值类型不同,并且不支持多音字模式,每个汉字只取第一个音.
NewArgs 返回包含默认配置的 `Args`.
Pinyin 汉字转拼音,支持多音字模式.
SinglePinyin 把单个 `rune` 类型的汉字转换为拼音.
Slug join `LazyPinyin` 的返回值.

# Constants

Meta.
Meta.
韵母风格,只返回各个拼音的韵母部分,不带声调。如: ong uo.
拼音风格(兼容之前的版本).
拼音风格(兼容之前的版本).
拼音风格(兼容之前的版本).
韵母风格1,带声调,声调在韵母第一个字母上。如: ōng uó.
韵母风格2,带声调,声调在各个韵母之后,用数字 [1-4] 进行表示。如: o1ng uo2.
韵母风格3,带声调,声调在各个拼音之后,用数字 [1-4] 进行表示。如: ong1 uo2.
拼音风格(兼容之前的版本).
首字母风格,只返回拼音的首字母部分。如: z g.
声母风格,只返回各个拼音的声母部分。如: zh g 。注意:不是所有的拼音都有声母.
拼音风格(兼容之前的版本).
Meta.
普通风格,不带声调(默认风格)。如: zhong guo.
拼音风格(兼容之前的版本).
声调风格1,拼音声调在韵母第一个字母上。如: zhōng guó.
拼音风格(兼容之前的版本).
声调风格2,即拼音声调在各个韵母之后,用数字 [1-4] 进行表示。如: zho1ng guo2.
拼音风格(兼容之前的版本).
声调风格3,即拼音声调在各个拼音之后,用数字 [1-4] 进行表示。如: zhong1 guo2.
Meta.

# Variables

Fallback 默认配置: 如何处理没有拼音的字符(忽略这个字符).
Heteronym 默认配置:是否启用多音字模式.
PinyinDict is data map Warning: Auto-generated file, don't edit.
Separator 默认配置: `Slug` 中 Join 所用的分隔符.
Style 默认配置:风格.

# Structs

Args 配置信息.