Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Menukar Teks dari Windows-1256 ke UTF-8 dalam Go?

Bagaimana untuk Menukar Teks dari Windows-1256 ke UTF-8 dalam Go?

Mary-Kate Olsen
Lepaskan: 2024-11-29 16:43:18
asal
267 orang telah melayarinya

How to Convert Text from Windows-1256 to UTF-8 in Go?

Pengekodan Teks dalam Go

Apabila bekerja dengan data teks, selalunya perlu menukar antara pengekodan yang berbeza. UTF-8 ialah pengekodan yang digunakan secara meluas yang mampu mewakili pelbagai jenis aksara.

Soalan: Bagaimanakah anda menukar teks daripada pengekodan seperti Windows-1256 Arabic kepada UTF- 8 in Go?

Jawapan:

Untuk melaksanakan ini penukaran, gunakan pakej pengekodan yang tersedia dalam Go. Selain itu, pakej golang.org/x/text/encoding/charmap menyediakan sokongan untuk pelbagai pengekodan, termasuk Windows-1256.

Contoh:

Coretan kod berikut menunjukkan cara mengekod teks daripada UTF-8 Jepun ke ShiftJIS dan kemudiannya menyahkodnya kembali ke UTF-8:

package main

import (
    "bytes"
    "fmt"
    "io/ioutil"
    "strings"

    "golang.org/x/text/encoding/japanese"
    "golang.org/x/text/transform"
)

func main() {
    // Input string
    s := "今日は"
    fmt.Println(s)

    // Encode: Convert s from UTF-8 to ShiftJIS
    var b bytes.Buffer
    wInUTF8 := transform.NewWriter(&b, japanese.ShiftJIS.NewEncoder())
    wInUTF8.Write([]byte(s))
    wInUTF8.Close()
    encodedBytes := b.Bytes()
    fmt.Printf("%#v\n", encodedBytes)
    encS := string(encodedBytes)
    fmt.Println(encS)

    // Decode: Convert encodedBytes from ShiftJIS to UTF-8
    rInUTF8 := transform.NewReader(strings.NewReader(encS), japanese.ShiftJIS.NewDecoder())
    decodedBytes, _ := ioutil.ReadAll(rInUTF8)
    decodedString := string(decodedBytes)
    fmt.Println(decodedString)
}
Salin selepas log masuk

Untuk contoh yang lebih komprehensif, rujuk pautan berikut: https://ja.stackoverflow.com/questions/6120.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Teks dari Windows-1256 ke UTF-8 dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan