首頁 > 後端開發 > Golang > 如何在 Go 中將文字從 Windows-1256 轉換為 UTF-8?

如何在 Go 中將文字從 Windows-1256 轉換為 UTF-8?

Mary-Kate Olsen
發布: 2024-11-29 16:43:18
原創
201 人瀏覽過

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

在 Go 中編碼文字

在處理文字資料時,通常需要在不同的編碼之間進行轉換。 UTF-8 是一種廣泛使用的編碼,能夠表示多種字元。

問題:如何將文字從 Windows-1256 阿拉伯語等編碼轉換為 UTF- Go 中的 8?

答案:

要執行此轉換,請利用 Go 中可用的編碼套件。此外,golang.org/x/text/encoding/charmap 套件提供了對各種編碼的支持,包括 Windows-1256。

範例:

以下程式碼片段示範如何將文字從日文 UTF-8 編碼為ShiftJIS,然後將其解碼回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)
}
登入後複製

有關更全面的範例,請參閱以下連結:https://ja.stackoverflow.com/questions/6120。

以上是如何在 Go 中將文字從 Windows-1256 轉換為 UTF-8?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板