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

Bagaimana untuk Menukar Teks ANSI ke UTF-8 dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-11-26 13:48:10754semak imbas

How to Convert ANSI Text to UTF-8 in Go?

Menukar Teks ANSI kepada UTF-8 dalam Go

Dalam Go, semua rentetan disimpan dalam format UTF-8. Walau bagaimanapun, anda mungkin menghadapi situasi di mana anda perlu menukar teks ANSI, yang menggunakan pengekodan aksara yang berbeza, kepada UTF-8. Begini cara anda boleh mencapai ini:

Mengikut spesifikasi bahasa Go, semua rentetan dikendalikan sebagai UTF-8 secara dalaman. Oleh itu, tidak ada keperluan untuk penukaran eksplisit. Jika anda mempunyai tatasusunan bait yang mewakili teks ANSI, anda hanya boleh menggunakan coretan berikut untuk menukarnya kepada rentetan Go:

import (
    "bytes"
    "unicode/utf8"
)

func convertANSItoUTF8(ansiBytes []byte) string {
    reader := bytes.NewReader(ansiBytes)
    decoder := utf8.RuneReader(reader)

    var utf8String []rune
    for {
        r, size, err := decoder.ReadRune()
        if err != nil {
            break
        }
        utf8String = append(utf8String, r)
    }

    return string(utf8String)
}

Fungsi ini menggunakan fungsi utf8.RuneReader untuk lelaran ke atas bait ANSI dan menukar mereka kepada rune UTF-8. Rune kemudiannya dilampirkan pada kepingan, yang akhirnya ditukar kepada rentetan UTF-8.

Nota: Fungsi ini menganggap bahawa input ANSI adalah sah. Jika terdapat sebarang jujukan yang tidak sah, gelagat fungsi tersebut tidak ditentukan.

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

Kenyataan:
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