Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar bahasa Cina dalam golang

Bagaimana untuk menukar bahasa Cina dalam golang

PHPz
PHPzasal
2023-05-13 10:18:071247semak imbas

Golang ialah bahasa pengaturcaraan yang cekap yang boleh digunakan untuk pembangunan dalam pelbagai bidang, termasuk penukaran bahasa Cina. Penukaran bahasa Cina adalah penting dalam banyak senario aplikasi, seperti enjin carian, pembelajaran mesin, dll. Artikel ini akan memperkenalkan kaedah penukaran bahasa Cina di Golang.

  1. Penukaran rentetan

Di Golang, rentetan itu sendiri dikodkan dalam UTF-8, jadi pengekodan dan penyahkodan diperlukan semasa memproses aksara Cina. Ia boleh dilaksanakan menggunakan fungsi dalam pakej rentetan yang disediakan oleh Golang.

1.1 Dapatkan kod ASCII daripada rentetan Cina

Gunakan fungsi ToASCII pakej rentetan untuk mendapatkan kod ASCII daripada rentetan Cina:

Contoh kod:

import (
    "fmt"
    "strconv"
    "strings"
)
func main() {
    str := "Hello,世界!"
    asciiStr := strings.ToASCII(str)
    fmt.Println(asciiStr)
}

Hasil keluaran:

Hello@u4e16u754c!

1.2 Pulihkan rentetan Cina daripada kod ASCII

Gunakan fungsi Nyahpetikan pakej strconv untuk memulihkan rentetan Cina daripada kod ASCII:

Kod contoh:

import (
    "fmt"
    "strconv"
)
func main() {
    asciiStr := `"Hello@u4e16u754c!"`
    str, _ := strconv.Unquote(asciiStr)
    fmt.Println(str)
}

Hasil keluaran:

Hello,世界!
  1. Penukaran fail

Apabila memproses fail Cina, kaedah pengekodan yang berbeza perlu digunakan, seperti GB2312, GBK, UTF-8, dsb. Golang juga menyediakan pakej dan fungsi yang sepadan untuk pemprosesan.

2.1 Baca fail dalam format pengekodan GB2312

Gunakan pakej bufio dan fungsi NewDecoder pakej GB2312 untuk membaca fail teks dalam format pengekodan GB2312:

Contoh kod:

import (
    "bufio"
    "fmt"
    "io"
    "os"
    "golang.org/x/text/encoding/simplifiedchinese"
)
func main() {
    file, err := os.Open("test.txt")
    if err != nil {
        fmt.Println(err)
    }
    defer file.Close()
    reader := bufio.NewReader(file)
    decoder := simplifiedchinese.GB2312.NewDecoder()
    for {
        line, err := reader.ReadString('
')
        if err != nil || io.EOF == err {
            break
        }
        str, err := decoder.String(line)
        if err != nil {
            fmt.Println(err)
        }
        fmt.Println(str)
    }
}

2.2 Baca fail dalam format pengekodan UTF-8

Gunakan pakej bufio dan fungsi NewDecoder pakej UTF-8 untuk membaca fail teks dalam format pengekodan UTF-8:

Kod contoh :

import (
    "bufio"
    "fmt"
    "io"
    "os"
    "golang.org/x/text/encoding/unicode"
)
func main() {
    file, err := os.Open("test.txt")
    if err != nil {
        fmt.Println(err)
    }
    defer file.Close()
    reader := bufio.NewReader(file)
    decoder := unicode.UTF8.NewDecoder()
    for {
        line, err := reader.ReadString('
')
        if err != nil || io.EOF == err {
            break
        }
        str, err := decoder.String(line)
        if err != nil {
            fmt.Println(err)
        }
        fmt.Println(str)
    }
}
  1. Penukaran pangkalan data

Apabila berurusan dengan pangkalan data Cina, faktor seperti set aksara dan kaedah pengekodan perlu dipertimbangkan. Golang menyediakan pakej pangkalan data/sql dan pemacu yang sepadan, yang boleh menyambung ke pelbagai pangkalan data dan menukar aksara Cina Berikut menggunakan pangkalan data MySQL sebagai contoh.

3.1 Sambung ke pangkalan data MySQL

Mula-mula anda perlu memasang pemacu MySQL:

go get github.com/go-sql-driver/mysql

Kemudian sambung ke pangkalan data, tetapkan set aksara dan kaedah pengekodan:

Contoh kod:

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)
func main() {
    db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4")
    if err != nil {
        fmt.Println(err)
    }
    defer db.Close()
}

3.2 Kueri pangkalan data MySQL

Gunakan fungsi pertanyaan dalam pakej sql untuk pertanyaan data, dan tetapkan set aksara dan pengekodan:

Kod contoh:

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)
func main() {
    db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4")
    if err != nil {
        fmt.Println(err)
    }
    defer db.Close()
    rows, err := db.Query("SELECT * FROM table_name")
    if err != nil {
        fmt.Println(err)
    }
    defer rows.Close()
    for rows.Next() {
        var name string
        var age int
        err = rows.Scan(&name, &age)
        if err != nil {
            fmt.Println(err)
        }
        fmt.Println(name, age)
    }
}

Melalui contoh kod di atas, dapat dilihat bahawa kaedah pemprosesan aksara Cina di Golang adalah terutamanya menggunakan pakej dan fungsi yang sepadan, yang agak mudah dan mudah digunakan. Apabila perlu untuk menangani masalah aksara Cina, anda boleh menggunakan Golang untuk melaksanakan operasi yang sepadan untuk meningkatkan prestasi dan kecekapan aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk menukar bahasa Cina dalam golang. 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