strings.TrimRight()
работает просто отлично.«Проблема» в вашем случае заключается в том, что значение string
, хранящееся в переменной a
, не заканчивается на "\r\n"
.
Причина этого в том, что вы "цитируете"«оно использует fmt.Sprintf()
, и строка оканчивается на "\\r\\n"
, и, кроме того, к нему будет добавлена даже двойная кавычка (то есть, она заканчивается обратной косой чертой, буквой r
, еще один обратный слеш, буква n
и символ двойной кавычки).
Если вы не заключите в кавычки свою строку, то:
var s = "\b\x02\b\x02\r\n"
fmt.Printf("s: %q\n", s)
b := strings.TrimRight(s, "\r\n")
fmt.Printf("b: %q\n", b)
Вывод (попробуйте на Go Playground ):
s: "\b\x02\b\x02\r\n"
b: "\b\x02\b\x02"