我需要解析一些字符串并通过将任何特殊字符解析为“â”TO&#226来清理它们。这是十进制编码。我知道如何使用this将其解析为Unicode,但我需要十进制代码。整个想法是替换那些特殊字符,如果它们包含特殊字符,则返回整个字符串。例如:
text := "chitâra"
text := parseNCRs(text) //can be by reference
parseNCRs(&text) //or passing the pointer
fmt.Println(text) //Outputs: "chitâra"
答案 0 :(得分:4)
字符串上的范围以获取符文的数值。
func escape(s string) string {
var buf bytes.Buffer
for _, r := range s {
if r > 127 {
fmt.Fprintf(&buf, "&#%d;", r)
} else {
buf.WriteRune(r)
}
}
return buf.String()
}
如果您要转义HTML或XML,那么您还应该处理其他特殊字符:
func escape(s string) string {
var buf bytes.Buffer
for _, r := range s {
if r > 127 || r == '<' || r == '>' || r == '&' || r == '"' || r = '\'' {
fmt.Fprintf(&buf, "&#%d;", r)
} else {
buf.WriteRune(r)
}
}
return buf.String()
}