回答
您可以使用the encoding package,其中包括通过包golang.org/x/text/encoding/charmap
(在下面的示例中,导入此包并使用charmap.Windows1256
而不是japanese.ShiftJIS
)支持Windows-1256。
下面是一个简短的例子,它将日语UTF-8字符串编码为ShiftJIS编码,然后将ShiftJIS字符串解码回UTF-8。不幸的是,由于操场上没有“x”包装,因此它不适用于操场。
package main
import (
"bytes"
"fmt"
"io/ioutil"
"strings"
"golang.org/x/text/encoding/japanese"
"golang.org/x/text/transform"
)
func main() {
// the string we want to transform
s := "今日は"
fmt.Println(s)
// --- Encoding: convert s from UTF-8 to ShiftJIS
// declare a bytes.Buffer b and an encoder which will write into this buffer
var b bytes.Buffer
wInUTF8 := transform.NewWriter(&b, japanese.ShiftJIS.NewEncoder())
// encode our string
wInUTF8.Write([]byte(s))
wInUTF8.Close()
// print the encoded bytes
fmt.Printf("%#v\n", b)
encS := b.String()
fmt.Println(encS)
// --- Decoding: convert encS from ShiftJIS to UTF8
// declare a decoder which reads from the string we have just encoded
rInUTF8 := transform.NewReader(strings.NewReader(encS), japanese.ShiftJIS.NewDecoder())
// decode our string
decBytes, _ := ioutil.ReadAll(rInUTF8)
decS := string(decBytes)
fmt.Println(decS)
}
在日语的StackOverflow网站上有一个更完整的例子。该文本是日语,但代码应该不言自明:https://ja.stackoverflow.com/questions/6120
我找不到一个将编码转换为另一个的实例,在dot net中这样做很简单,但在这里我真的很新鲜。 –
大活的例子。 嗯,所以这里我们试图从UTF8转换到日本SHIFTJIS,是否有可能做到这一点呢? –
要解码ShiftJIS,请使用第二部分,从“声明解码器...”开始,encS是您希望解码的字符串,string(decBytes)是解码后的字符串。也许两种功能会更好,但我想尽可能缩短范例... – rob74
使用模块从golang.org/x/text
。在你的情况下,这将是这样的:
b := /* Win1256 bytes here. */
dec := charmap.Windows1256.NewDecoder()
// Take more space just in case some characters need
// more bytes in UTF-8 than in Win1256.
bUTF := make([]byte, len(b)*3)
n, _, err := dec.Transform(bUTF, b, false)
if err != nil {
panic(err)
}
bUTF = bUTF[:n]
- 1. 如何将Rails项目中的Mysql编码utf8转换为utf8mb4
- 2. 如何将K12中的win1251编码转换为UTF8?
- 3. 在python中将任何编码转换为utf8?
- 4. 如何将保存的文本文件编码转换为UTF8?
- 5. 将utf8代码点字符串转换为utf8 <U+0161>转换为utf8
- 6. 转换ASCII到UTF8编码
- 7. iPhone - 从WindowsCP1251转换NSString编码为UTF8
- 8. 如何在PHP中将ASCII编码的字符串转换为UTF8?
- 9. 如何将UTF8字符串转换为PHP中的代码页?
- 10. 如何将字符串转换为UTF8?
- 11. SOLR + Mysql:如何将utf8转换为latin1
- 12. 如何将mysql latin1转换为utf8
- 13. java:如何将文件转换为utf8
- 14. 如何将php数组转换为utf8?
- 15. 如何将utf8转换为iso-8859-7?
- 16. 如何将ISO8859-15转换为UTF8?
- 17. 如何在Perl中将gbk编码转换为utf-8编码
- 18. 转换UTF8编码IAST对SLP在PHP
- 19. 如何将页面编码为UTF8
- 20. 如何将WE8MSWIN1252中编码的数据转换为utf8以用于Python脚本?
- 21. 在vb.net中将EBCDIC转换为UTF8
- 22. 在bash中将stdout转换为utf8
- 23. 在SQL Server中将UTF8转换为uTF16
- 24. 如何将latin1编码表转储为MYSQL中的utf8编码表?
- 25. 如何将go方法转换为func?
- 26. 在Python中使用UTF8编码的JSON转换为CSV
- 27. 将Unicode转换为UTF8
- 28. Python将latin1转换为UTF8
- 29. 将UTF8转换为ANSI?
- 30. 将utf8转换为1251
你的意思是*编码*?只有*一个* Unicode,阿拉伯语1256不是“一个Unicode”。 – deceze
你是对的,我们编辑了这个问题。谢谢。 –