Как получить десятичное значение для руны в Го?

Мне нужно проанализировать некоторые строки и очистить их, проанализировав любой специальный символ как 'â' TO & # 226. Это десятичное кодирование. Я знаю, как с этим разобрать Unicode, но мне понадобится десятичный код. Вся идея состоит в том, чтобы заменить эти специальные символы и вернуть всю строку с преобразованием, если они содержат специальные символы. Например:

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

1 ответ

Решение

Диапазон по строке, чтобы получить числовые значения рун.

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()
}
Другие вопросы по тегам