Rumah  >  Artikel  >  pembangunan bahagian belakang  >  penukaran pengekodan golang

penukaran pengekodan golang

WBOY
WBOYasal
2023-05-21 19:48:371237semak imbas

Bahasa Go ialah bahasa pengaturcaraan moden dengan kecekapan, konkurensi dan mudah alih. Dalam aplikasi praktikal, selalunya perlu menangani masalah penukaran antara pengekodan yang berbeza. Artikel ini akan memperkenalkan penyelesaian penukaran pengekodan dalam golang.

  1. Pengetahuan asas pengekodan

Dalam komputer, aksara selalunya diwakili sebagai pengekodan digital, seperti kod ASCII, GB2312, UTF-8, dsb. Hubungan pemetaan aksara antara pengekodan yang berbeza adalah berbeza, yang juga membawa kepada kekurangan dan kelebihan masing-masing.

Kod ASCII ialah kaedah pengekodan yang biasa digunakan Ia hanya boleh mewakili 128 aksara, termasuk huruf besar dan kecil, nombor dan beberapa aksara khas, yang mengehadkan penggunaannya dalam pengantarabangsaan. GB2312 ialah kaedah pengekodan aksara Cina yang boleh mewakili kira-kira 7,000 aksara Cina, tetapi ia hanya popular di China. Begitu juga, pengekodan UTF-8 juga merupakan kaedah pengekodan yang biasa digunakan Ia boleh mewakili aksara di seluruh dunia, tetapi kelemahannya ialah apabila berurusan dengan bahasa Asia Timur, bilangan baitnya akan lebih banyak berbanding dengan GB2312 atau GB18030.

Oleh itu, adalah perlu untuk menukar antara pengekodan yang berbeza untuk digunakan dalam senario yang sepadan.

  1. Penukaran pengekodan dalam golang

pustaka standard golang menyediakan pakej pengekodan dan unikod, yang digunakan untuk menangani isu berkaitan pengekodan dan isu berkaitan titik kod Unikod. soalan.

Dalam golang, aksara diwakili sebagai jenis rune dan rentetan terdiri daripada satu siri jenis rune. Berikut akan memperkenalkan fungsi penukaran pengekodan yang biasa digunakan dan contoh dalam golang.

2.1 Pengekodan fungsi penukaran dalam golang

Pakej 2.1.1 bait

Pakej bait menyediakan beberapa fungsi untuk membaca dan menulis data binari, sebahagian daripadanya khusus Digunakan untuk menghuraikan dan bersiri rentetan.

Fungsi nama fungsi

func ToUpperSpecial Tukar rentetan kepada huruf besar, sokong Locale tersuai

func ToLowerSpecial Tukar rentetan kepada huruf kecil, sokong Locale tersuai

func ToTitleSpecial Tukar rentetan kepada format tajuk, sokong Locale tersuai

func ToUpper Tukar rentetan kepada huruf besar

func ToLower Tukar rentetan kepada huruf kecil

func ToTitle Tukar rentetan kepada tajuk format

func Tajuk Tukarkan keseluruhan rentetan kepada format tajuk

func TrimSpace Alih keluar ruang pada permulaan dan penghujung rentetan

func Trim Alih keluar aksara Aksara yang ditentukan pada permulaan dan penghujung rentetan

func TrimFunc Mengeluarkan fungsi yang ditentukan pada permulaan dan penghujung rentetan

func TrimLeftFunc Mengeluarkan fungsi yang ditentukan di sebelah kiri rentetan

func TrimRightFunc Mengalih keluar fungsi yang ditentukan di sebelah kanan rentetan

func HasPrefix Menentukan sama ada rentetan mengandungi awalan yang ditentukan

func HasSuffix Menentukan sama ada rentetan mengandungi akhiran yang ditentukan

func Index Mengembalikan kejadian pertama subrentetan yang ditentukan dalam rentetan Kedudukan

func LastIndex Mengembalikan kedudukan kejadian terakhir subrentetan yang ditentukan dalam rentetan

func IndexFunc Mengembalikan kedudukan kejadian pertama aksara yang memenuhi syarat yang ditentukan dalam rentetan

func LastIndexFunc Mengembalikan kedudukan kejadian terakhir aksara yang memenuhi syarat yang ditentukan dalam rentetan

func IndexByte Mengembalikan kedudukan daripada kejadian pertama aksara yang ditentukan dalam rentetan

func LastIndexByte Mengembalikan kejadian terakhir aksara dalam rentetan Kedudukan di mana watak yang ditentukan muncul

func Count Mengembalikan bilangan kejadian subrentetan yang ditentukan dalam rentetan

func Replace Menggantikan subrentetan yang ditentukan dalam rentetan dengan rentetan lain

func ReplaceAll Gantikan semua subrentetan yang ditentukan dalam rentetan dengan rentetan lain

func Split Pisahkan rentetan kepada hirisan mengikut pembatas yang ditentukan

func SplitN Pisahkan rentetan mengikut pembatas yang ditentukan kepada kepingan, sehingga N kali

func SplitAfter Pisahkan rentetan kepada kepingan mengikut yang ditentukan akhiran, dan akhiran disertakan dalam setiap subrentetan

func SplitAfterN Pisahkan rentetan menjadi kepingan mengikut akhiran yang ditentukan , akhiran disertakan dalam setiap subrentetan, berpecah sehingga N kali

func Join Cantumkan kepingan rentetan menjadi satu rentetan mengikut pembatas yang ditentukan

pakej pengekodan 2.1.2

Pakej pengekodan menyediakan satu siri fungsi untuk pengekodan dan penyahkodan kaedah pengekodan aksara yang berbeza, seperti UTF-8, GB2312, dsb.

Fungsi nama fungsi

func Decode Menyahkod hirisan bait pengekodan yang ditentukan ke dalam kepingan rune dalam format UTF-8

func DecodeRune Menyahkod kepingan bait pengekodan yang ditentukan menjadi rune Tunggal

func DecodeLastRune Decode rune terakhir

func daripada kepingan bait pengekodan yang ditentukan

func Encode Tukar kepingan rune kepada kepingan bait pengekodan yang ditentukan

func RuneCount pengiraan Bilangan rune dalam rune slice

func Rune Decode potongan bait pengekodan yang ditentukan ke dalam rune slice

2.1.3 pakej unicode

unicode pakej menyediakan beberapa fungsi Digunakan untuk menentukan sama ada aksara ialah nombor, huruf, dsb.

Nama fungsi Fungsi

fungsi IsDigit Tentukan sama ada watak itu adalah nombor

fungsi IsLetter Tentukan sama ada aksara itu adalah huruf

func IsLower menentukan sama ada watak itu huruf kecil

func IsUpper menentukan sama ada watak itu huruf besar

func IsPunct menentukan sama ada watak itu adalah tanda baca

func IsGraphic menentukan sama ada aksara tersebut ialah huruf besar Untuk aksara grafik visual

2.2 Pengekodan contoh penukaran dalam golang

Berikut ialah beberapa contoh penukaran pengekodan dalam golang:

2.2 .1 Penukaran pengekodan UTF-8 kepada GB2312

Contoh 1: Gunakan pakej pengekodan golang untuk menukar antara pengekodan UTF-8 dan pengekodan GB2312.

package main

import (
    "fmt"
    "github.com/axgle/mahonia"
)

func main() {
    str := "你好,世界!"
    enc := mahonia.NewEncoder("GB2312")
    newStr := enc.ConvertString(str)
    fmt.Println(newStr)
}

2.2.2 Tukar pengekodan GB2312 kepada UTF-8

Contoh 2: Gunakan pakej pengekodan golang untuk menukar antara pengekodan GB2312 dan pengekodan UTF-8.

package main

import (
    "fmt"
    "github.com/axgle/mahonia"
)

func main() {
    str := "你好,世界!"
    dec := mahonia.NewDecoder("GB2312")
    newStr := dec.ConvertString(str)
    fmt.Println(newStr)
}
  1. Ringkasan

Dalam aplikasi praktikal, masalah penukaran pengekodan ialah masalah biasa. Artikel ini memperkenalkan penyelesaian penukaran pengekodan dalam golang, yang terutamanya menggunakan fungsi yang disediakan oleh pengekodan dan pakej unikod untuk mencapai penukaran antara pengekodan yang berbeza. Dengan mempelajari kandungan ini, kita seharusnya mempunyai pemahaman yang lebih mendalam dan keupayaan praktikal yang lebih tepat untuk operasi penukaran pengekodan dalam golang.

Atas ialah kandungan terperinci penukaran pengekodan 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
Artikel sebelumnya:peningkatan ingatan golangArtikel seterusnya:peningkatan ingatan golang