Bagaimana untuk menukar bahasa Cina dalam golang

PHPz
Lepaskan: 2023-05-13 10:18:07
asal
1258 orang telah melayarinya

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)
}
Salin selepas log masuk

Hasil keluaran:

Hello@u4e16u754c!
Salin selepas log masuk

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)
}
Salin selepas log masuk

Hasil keluaran:

Hello,世界!
Salin selepas log masuk
  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)
    }
}
Salin selepas log masuk

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)
    }
}
Salin selepas log masuk
  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
Salin selepas log masuk

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()
}
Salin selepas log masuk

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)
    }
}
Salin selepas log masuk

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan