Go 结果执行模板中的unicode字符

Go 结果执行模板中的unicode字符,go,Go,我有这个模板 <data><datos name={{.Name}} phone={{.Phone}} email={{.Email}}></data> 我更新: 验证后,直到将此字符串值分配给特定的Struct对象,然后我尝试将其转换为json,错误才会发生。我无法重现此错误。请参见Go操场上的工作示例 下面代码的输出是 <data><datos name=Joe phone=123-456-7890 email=hunter2@a.co

我有这个模板

<data><datos name={{.Name}} phone={{.Phone}} email={{.Email}}></data>
我更新:


验证后,直到将此字符串值分配给特定的Struct对象,然后我尝试将其转换为json,错误才会发生。

我无法重现此错误。请参见Go操场上的工作示例

下面代码的输出是

<data><datos name=Joe phone=123-456-7890 email=hunter2@a.com></data>

主程序包
进口(
“字节”
“fmt”
“文本/模板”
)
类型Person结构{
名称字符串
电话线
电子邮件字符串
}
func main(){
buf:=&bytes.Buffer{}
t:=template.Must(template.New(“dataPdf”).Parse(“”)
数据:=人{姓名:“乔”,电话:“123-456-7890”,电子邮件:hunter2@a.com"}
err:=t.Execute(buf,数据)
如果错误!=零{
恐慌(错误)
}
fmt.Printf(buf.String())
}

.email
需要大写…@StevenPenny我修复了它,但问题仍然存在。
数据也未定义。您还有一个
return
语句,但没有
func
。您可以发布一个我们可以运行而无需更改任何内容的示例吗?encoding/json包转义为“”、“&”,因此生成的json可以安全地嵌入到HTML中(请参阅文档)。转义字符是有效的JSON,并按预期进行解码。用于禁用转义。这是否回答了您的问题?
\u003cdatos\u003e\
<data><datos name=Joe phone=123-456-7890 email=hunter2@a.com></data>
package main

import (
    "bytes"
    "fmt"
    "text/template"
)

type Person struct {
    Name  string
    Phone string
    Email string
}

func main() {
    buf := &bytes.Buffer{}
    t := template.Must(template.New("dataPdf").Parse("<data><datos name={{.Name}} phone={{.Phone}} email={{.Email}}></data>"))

    data := Person{Name: "Joe", Phone: "123-456-7890", Email: "hunter2@a.com"}

    err := t.Execute(buf, data)
    if err != nil {
        panic(err)
    }
    fmt.Printf(buf.String())
}