golang读取文件编码转换问题
首先导入包
"code.google.com/p/mahonia"
可以通过此链接获得此包
https://code.google.com/p/mahonia/
参考代码如下:
package main import ( "bufio" "code.google.com/p/mahonia" "log" "os" "strings" "time" ) func main() { //创建日志文件 t := time.Now() filepath := "./log_" + strings.Replace(t.String()[:19], ":", "_", 3) + ".txt" file, err := os.OpenFile(filepath, os.O_CREATE, 0666) if err != nil { log.Fatal("create log file failed!") } defer file.Close() wFile := bufio.NewWriter(file) wFile.WriteString(readfile()) wFile.Flush() } func readfile() string { f, err := os.Open("ex7.txt") if err != nil { return err.Error() } defer f.Close() buf := make([]byte, 1024) //文件ex7.txt的编码是gb18030 decoder := mahonia.NewDecoder("gb18030") if decoder == nil { return "编码不存在!" } var str string = "" for { n, _ := f.Read(buf) if 0 == n { break } //解码为UTF-8 str += decoder.ConvertString(string(buf[:n])) } return str }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。