Iconv
Golang bindings to libiconv - Convert string to requested character encoding
Install / Use
/learn @qiniu/IconvREADME
iconv: libiconv for go
iconv is a libiconv wrapper for go. libiconv Convert string to requested character encoding.
Document
See http://godoc.org/github.com/qiniu/iconv
Note: Open returns a conversion descriptor cd, cd contains a conversion state and can not be used in multiple threads simultaneously.
Install
go get github.com/qiniu/iconv
Example
Convert string
package main
import (
"fmt"
"github.com/qiniu/iconv"
)
func main() {
cd, err := iconv.Open("gbk", "utf-8") // convert utf-8 to gbk
if err != nil {
fmt.Println("iconv.Open failed!")
return
}
defer cd.Close()
gbk := cd.ConvString("你好,世界!")
fmt.Println(gbk)
}
Output to io.Writer
package main
import (
"fmt"
"github.com/qiniu/iconv"
)
func main() {
cd, err := iconv.Open("gbk", "utf-8") // convert utf-8 to gbk
if err != nil {
fmt.Println("iconv.Open failed!")
return
}
defer cd.Close()
output := ... // eg. output := os.Stdout || ouput, err := os.Create(file)
autoSync := false // buffered or not
bufSize := 0 // default if zero
w := iconv.NewWriter(cd, output, bufSize, autoSync)
fmt.Fprintln(w, "你好,世界!")
w.Sync() // if autoSync = false, you need call Sync() by yourself
}
Input from io.Reader
package main
import (
"fmt"
"io"
"os"
"github.com/qiniu/iconv"
)
func main() {
cd, err := iconv.Open("utf-8", "gbk") // convert gbk to utf8
if err != nil {
fmt.Println("iconv.Open failed!")
return
}
defer cd.Close()
input := ... // eg. input := os.Stdin || input, err := os.Open(file)
bufSize := 0 // default if zero
r := iconv.NewReader(cd, input, bufSize)
_, err = io.Copy(os.Stdout, r)
if err != nil {
fmt.Println("\nio.Copy failed:", err)
return
}
}
Related Skills
node-connect
349.7kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.7kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.7kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。

