首页 > 后端开发 > Golang > 如何在 Go 中将文本从 Windows-1256 转换为 UTF-8?

如何在 Go 中将文本从 Windows-1256 转换为 UTF-8?

Mary-Kate Olsen
发布: 2024-11-29 16:43:18
原创
175 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板