2016-11-16 4 views
-5

[] byte to string ошибка. строка ([] byte [: n]) ошибка тоже. Кстати, например, значение sha1 для строки для имени файла. Нужен utf-8? Или что-нибудь еще? спасибо.golang - Convert [] byte to string error

+3

'[] byte' может быть преобразован непосредственно в' string'. Пожалуйста, покажите пример того, какая у вас проблема. – JimB

+0

например. file hash value to string for filename –

+0

Если вы просто покажете нам пример того, что вы пробовали, было бы очень просто ответить на вопрос, а не ждать, пока мы угадаем правильный ответ. – JimB

ответ

1

В Go вы преобразовать массив байтов (UTF-8) в строку, выполнив string(bytes) так в вашем примере, это должно быть string(byte[:n]) при условии byte является срез байтов.

+0

Я только что попробовал, как this.but не удалось. На самом деле, мне нужно преобразовать значение sha1 файла в строку, названное по имени файла –

+0

сработало - 05.01.2018 – JohannaNoobie

0

Сначала вы получаете все эти негативные отзывы, потому что вы не предоставили никакого кода. Во-вторых, без хорошего примера. Это то, что я хотел бы сделать

var Buf bytes.Buffer 
Buf.Write([]byte) 
myString := Buf.String() 
Buf.Reset() // Reset the buffer to reuse later 

или еще лучше

myString := string(someByteArray[:n]) 

см here также см @ комментарий JimB в

Это, как говорится, если вы поможете, что цели вашей программы, пожалуйста, предоставьте и пример от того, что вы пробовали, ожидаемых результатов и ошибок.

+0

Большое спасибо. EncodeToString возвращает шестнадцатеричное кодирование src.it. –

2

Я не уверен, что я понимаю вопрос правильно, но может быть:

var ab20 [20]byte = sha1.Sum([]byte("filename.txt")) 
var sx16 string = fmt.Sprintf("%x", ab20) 
fmt.Print(sx16) 

https://play.golang.org/p/haChjjsH0-

+1

В то время как технически корректно, в Go рекомендуется использовать 'var' и объявлять каждый тип, не вызывая их. https://play.golang.org/p/JUl57LKfzk – JimB

+0

Ах! "%Икс"! Вот что я делал неправильно! :) Я использовал неправильный заполнитель Sprintf, duh ... –

4

Самый простой метод я использую для преобразования byte в string заключается в следующем:

myString := string(myBytes[:])

+0

Этот работает для меня и, кажется, самый простой – Matthias