iconv

Golang bindings to libiconv - Convert string to requested character encoding

  • Owner: mreiferson/go-ujson
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

iconv: libiconv for go

Build Status Build Status

logo

iconv is a libiconv wrapper for go. libiconv Convert string to requested character encoding.
iconv project's homepage is: https://github.com/go-iconv/iconv.
Fork from : https://github.com/qiniu/iconv.

why go-iconv?

support gopkg.in API

Document

See http://godoc.org/gopkg.in/iconv.v1

Note: Open returns a conversion descriptor cd, cd contains a conversion state and can not be used in multiple threads simultaneously.

Install

go get gopkg.in/iconv.v1

Example

Convert string

package main

import (
	"fmt"
	"gopkg.in/iconv.v1"
)

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"
	"gopkg.in/iconv.v1"
)

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"
	"gopkg.in/iconv.v1"
)

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

Main metrics

Overview
Name With Ownermreiferson/go-ujson
Primary LanguageGo
Program languageGo (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2013-03-08 23:57:54
Pushed At2020-06-14 02:14:15
Last Commit At2020-06-13 19:14:06
Release Count0
用户参与
Stargazers Count73
Watchers Count8
Fork Count16
Commits Count18
Has Issues Enabled
Issues Count3
Issue Open Count2
Pull Requests Count3
Pull Requests Open Count0
Pull Requests Close Count5
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private