Documentation ¶
Overview ¶
Package charsetconv @Description: 这个包实现了文本编码转换功能,用于将基于字符集的文本数据转化为另一字符集。 比如将UTF8文本转化为GBK文本,反之亦然。由于go语言原生基于UTF8编码,因此,在go语言语境中, 文本编解码的含义是特定的: 编码(encode)是指,将UTF8文本转换为以另一字符集编码的文本数据 解码(decode)是指,将以其他字符集编码的文本数据转换为UTF8编码的文本
本包提供了Encode、Decode两种接口,同时还提供了Convert接口,即在任意两种字符集之间进行转换的接口,提供了诸如直接从GBK编码到Big5编码转换的能力。
需要注意的是,编码转换并不一定总是能够成功的,结果取决于进行转换的两种字符集之间的兼容性,而且还和转换的方向有很大关系。 例如:将一段Windows-1252字符集编码的文本转换为GBK形式,大概率是会成功的,而反过来则很可能会失败, 究其原因,在Windows-1252字符集中并不包含汉字的编码。
本包基于golang.org/x/text/encoding封装,目的在于提供一个简单、易用、直观的接口。
Index ¶
- Constants
- func AddCharsetAlias(charset Charset, alias string)
- func CloseFile(file *os.File)
- func Convert(src io.Reader, srcEncoding encoding.Encoding, dest io.Writer, ...) error
- func ConvertTo(src []byte, srcCharset Charset, destCharset Charset) ([]byte, error)
- func ConvertWith(src io.Reader, srcCharset Charset, dest io.Writer, destCharset Charset, ...) error
- func Decode(src io.Reader, dest io.Writer, srcEncoding encoding.Encoding, ...) error
- func DecodeToString(src []byte, srcCharset Charset) (string, error)
- func DecodeWith(src io.Reader, dest io.Writer, srcCharset Charset, useStageFile bool) error
- func Encode(src io.Reader, dest io.Writer, destEncoding encoding.Encoding, ...) error
- func EncodeString(src string, destCharset Charset) ([]byte, error)
- func EncodeWith(src io.Reader, dest io.Writer, destCharset Charset, useStageFile bool) error
- func EncodingOf(name string) (encoding.Encoding, error)
- func MakeByteBuffer(initSize int) *bytes.Buffer
- func MakeByteReader(src []byte) io.Reader
- func MakeStringReader(src string) io.Reader
- func MakeTempFile() (*os.File, error)
- func RemoveCharsetAlias(alias string)
- func RemoveTempFile(file *os.File)
- type Charset
- type UnknownCharset
Constants ¶
View Source
const ( UTF8 Charset = "utf-8" UTF16 = "UTF-16" UTF16BE = "UTF-16BE" UTF16LE = "UTF-16LE" )
View Source
const ( GBK Charset = "GBK" GB18030 = "GB18030" Big5 = "Big5" )
View Source
const ( EUCJP Charset = "EUC-JP" ISO2022JP = "ISO-2022-JP" ShiftJIS = "Shift_JIS" )
View Source
const ( Macintosh Charset = "macintosh" IBM037 = "IBM037" IBM437 = "IBM437" IBM850 = "IBM850" IBM852 = "IBM852" IBM855 = "IBM855" IBM00858 = "IBM00858" IBM860 = "IBM860" IBM862 = "IBM862" IBM863 = "IBM863" IBM865 = "IBM865" IBM866 = "IBM866" IBM1047 = "IBM1047" IBM01140 = "IBM01140" ISO88591 = "ISO-8859-1" ISO88592 = "ISO-8859-2" ISO88593 = "ISO-8859-3" ISO88594 = "ISO-8859-4" ISO88595 = "ISO-8859-5" ISO88596 = "ISO-8859-6" ISO88596E = "ISO-8859-6-E" ISO88596I = "ISO-8859-6-I" ISO88597 = "ISO-8859-7" ISO88598 = "ISO-8859-8" ISO88598E = "ISO-8859-8-E" ISO88598I = "ISO-8859-8-I" ISO88599 = "ISO-8859-9" ISO885910 = "ISO-8859-10" ISO885913 = "ISO-8859-13" ISO885914 = "ISO-8859-14" ISO885915 = "ISO-8859-15" ISO885916 = "ISO-8859-16" KOI8R = "KOI8-R" KOI8U = "KOI8-U" Windows874 = "Windows-874" Windows1250 = "Windows-1250" Windows1251 = "Windows-1251" Windows1252 = "Windows-1252" Windows1253 = "Windows-1253" Windows1254 = "Windows-1254" Windows1255 = "Windows-1255" Windows1256 = "Windows-1256" Windows1257 = "Windows-1257" Windows1258 = "Windows-1258" )
Variables ¶
This section is empty.
Functions ¶
func AddCharsetAlias ¶
func Convert ¶
func Convert(src io.Reader, srcEncoding encoding.Encoding, dest io.Writer, destEncoding encoding.Encoding, useStageFile bool) error
Convert
@Description: 字符集转换函数 @param src 数据源 @param srcEncoding 数据源编码 @param dest 输出 @param destEncoding 输出编码 @param useStageFile 是否使用中转文件 @return error
func ConvertTo ¶
ConvertTo
@Description: 字符集转换函数 @param src 数据源 @param srcCharset 数据源编码字符集 @param destCharset 输出编码字符集 @return []byte @return error
func ConvertWith ¶
func ConvertWith(src io.Reader, srcCharset Charset, dest io.Writer, destCharset Charset, useStageFile bool) error
ConvertWith
@Description: 字符集转换函数 @param src 数据源 @param srcCharset 数据源编码字符集 @param dest 输出 @param destCharset 输出编码字符集 @param useStageFile 是否使用中转文件 @return error
func Decode ¶
Decode
@Description: 解码函数,将指定编码形式数据转换为utf-8编码数据 @param src 待解码的数据源 @param dest 解码后的数据输出位置 @param srcEncoding 数据源编码 @param useStageFile 是否使用中转文件 @return error
func DecodeToString ¶
DecodeToString
@Description: 解码函数,将数据源解码为字符串 @param src 待解码的数据源 @param srcCharset 数据源编码字符集 @return string @return error
func DecodeWith ¶
DecodeWith
@Description: 解码函数,将指定编码形式数据转换为utf-8编码数据 @param src 待解码的数据源 @param dest 解码后的数据输出位置 @param srcCharset 数据源编码字符集 @param useStageFile 是否使用中转文件 @return error
func Encode ¶
Encode
@Description: 编码函数,将utf-8数据转换为指定编码形式 @param src 待编码的数据源,注意需确保该数据源以utf-8格式编码 @param dest 编码后的数据输出位置 @param destEncoding 目标编码格式 @param useStageFile 是否使用中转文件,如果设置了使用中转区文件,则先将编码后的数据缓存到中转区文件,编码成功后再从中转区文件拷贝到dest中 @return error
func EncodeString ¶
EncodeString
@Description: 编码函数,将字符串编码为指定字符集数据 @param src 待编码的字符串 @param destCharset 目标字符集 @return []byte @return error
func EncodeWith ¶
EncodeWith
@Description: 编码函数,将utf-8数据转换为指定编码形式 @param src 待编码的数据源,注意需确保该数据源以utf-8格式编码 @param dest 编码后的数据输出位置 @param destCharset 目标字符集名称,例如:gbk, Big5等 @param useStageFile 是否使用中转文件,如果设置了使用中转区文件,则先将编码后的数据缓存到中转区文件,编码成功后再从中转区文件拷贝到dest中 @return error
func MakeByteBuffer ¶
func MakeByteReader ¶
func MakeStringReader ¶
func MakeTempFile ¶
func RemoveCharsetAlias ¶
func RemoveCharsetAlias(alias string)
func RemoveTempFile ¶
Types ¶
type UnknownCharset ¶
type UnknownCharset struct {
// contains filtered or unexported fields
}
func UnknownCharsetError ¶
func UnknownCharsetError(charset Charset) UnknownCharset
func (UnknownCharset) Error ¶
func (e UnknownCharset) Error() string
Click to show internal directories.
Click to hide internal directories.