在 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中文網其他相關文章!