首页 > 后端开发 > Golang > 如何在 Go 中处理非 UTF-8 编码的 XML?

如何在 Go 中处理非 UTF-8 编码的 XML?

Mary-Kate Olsen
发布: 2024-12-26 03:28:15
原创
1002 人浏览过

How to Handle Non-UTF-8 Encoded XML in Go?

在 Go 中处理非 UTF-8 XML 输入

当尝试使用 Go 的 xml 包中的 Unmarshal 函数解组 XML 输入时,如果输入不是以 UTF-8 编码,则可能会遇到问题。为了解决这个问题,需要一个 CharsetReader。

哪里可以找到 CharsetReader

幸运的是,Go 的 net/html 包提供了 charset.NewReaderLabel 形式的解决方案。此阅读器可以处理非 UTF-8 编码输入到 UTF-8 的转换。

2015 年及以后的更新解决方案

在 Go 的早期版本中,必须实现自定义 CharsetReader。然而,较新版本的 Go 使用 charset.NewReaderLabel 提供了更简单的解决方案。以下是更新的代码片段:

import (
    "encoding/xml"
    "bytes"
    "golang.org/x/net/html/charset"
)

// ...
reader := bytes.NewReader(theXml)
decoder := xml.NewDecoder(reader)
decoder.CharsetReader = charset.NewReaderLabel
err = decoder.Decode(&parsed)
登录后复制

通过使用 charset.NewReaderLabel 作为 CharsetReader,Unmarshal 函数现在可以成功处理非 UTF-8 编码的 XML 输入,而无需手动转换或自定义实现。

以上是如何在 Go 中处理非 UTF-8 编码的 XML?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板