Как удалить все 4-байтовые символы в UTF8

Как можно удалить все символы UTF8 длиной более 3 байтов?

Я хочу поддерживать только UTF8mb3

Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
Создание API ввода вопросов на разных языках программирования (Python, PHP, Go и Node.js)
API ввода вопросов - это полезный инструмент для интеграции моделей машинного обучения, таких как ChatGPT, в приложения, требующие обработки...
3
0
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете перебирать и копировать только те руны, размер которых меньше 4 байт:

out:=make([]rune, 0, len(str))
for i:=0;i<len(str); {
  r, n:=utf8.DecodeRune(str[i:])
  if n<4 {
    out=append(out,r)
  }
  i+=n
}
result:=string(out)

Другие вопросы по теме