Home > Backend Development > Golang > How Can I Convert Text Encodings to UTF-8 Using Go\'s `encoding` Package?

How Can I Convert Text Encodings to UTF-8 Using Go\'s `encoding` Package?

DDD
Release: 2025-01-03 04:34:38
Original
727 people have browsed it

How Can I Convert Text Encodings to UTF-8 Using Go's `encoding` Package?

Convert Encodings to UTF-8 with Go's encoding Package

The encoding package in Go provides support for converting text from one encoding to another, including UTF-8. Here's how you can utilize this package for text conversion:

To convert from one encoding to UTF-8, you can use the following steps:

  1. Import the encoding package:

    import (
     "encoding/json"
     "fmt"
     "io/ioutil"
     "strings"
    )
    Copy after login
  2. Declare a bytes.Buffer to store the encoded text.
  3. Create an encoder for the desired output encoding (UTF-8 in this case) and connect it to the buffer.
  4. Encode the source text and write it to the buffer.
  5. Close the encoder to flush any remaining data.

Here's an example that converts a UTF-8 string to ShiftJIS and back:

// Convert String from UTF-8 to another encoding
func convertEncoding(s string, encoding string) string {
    encoder := json.NewEncoder(new(bytes.Buffer))
    if err := encoder.Encode(s); err != nil {
        fmt.Println("Encoding failed:", err)
        return ""
    }
    encodedStr, err := ioutil.ReadAll(encoder.Buffered())
    if err != nil {
        fmt.Println("Reading encoded string failed:", err)
        return ""
    }
    return strings.TrimSpace(string(encodedStr))
}

func main() {
    original := "日本語"
    encoded := convertEncoding(original, "shift_jis")
    fmt.Println("Encoded:", encoded)
    decoded := convertEncoding(encoded, "utf-8")
    fmt.Println("Decoded:", decoded)
}
Copy after login

The above is the detailed content of How Can I Convert Text Encodings to UTF-8 Using Go\'s `encoding` Package?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template