1

我需要解析一些字符串并通过将任何特殊字符解析为 'â' TO â 来清理它们。这是十进制编码。我知道如何用this将其解析为 Unicode ,但我需要十进制代码。整个想法是替换那些特殊字符,如果它们包含特殊字符,则返回带有转换的整个字符串。例如:

text := "chitâra"
text := parseNCRs(text) //can be by reference
parseNCRs(&text) //or passing the pointer
fmt.Println(text) //Outputs: "chitâra"
4

1 回答 1

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()
}

playground

如果您要转义 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()
}
于 2014-10-07T17:51:41.490 回答