Как преобразовать строку в массив байтов, который скомпилирован с заданной кодировкой в ​​Go?

В Java мы можем использовать метод String : byte[] getBytes(Charset charset) . Этот метод кодирует строку в последовательность байтов, используя заданный набор символов, сохраняя результат в новый массив байтов.

Но как это сделать в GO? Есть ли в Go подобный способ сделать это?

Пожалуйста, дайте мне знать.


person hardPass    schedule 06.04.2012    source источник


Ответы (2)


Стандартная библиотека Go поддерживает только кодировку Unicode (UTF-8, UTF-16, UTF-32) и ASCII. ASCII является подмножеством UTF-8.

Пакет go-charset (находится на здесь) поддерживает преобразование в UTF-8 и обратно, а также ссылается на библиотеку GNU iconv.

См. также поле CharsetReader в encoding/xml.Decoder.

person Community    schedule 06.04.2012
comment
Я не думаю, что Go изначально поддерживает UTF-16 или 32, только UTF-8 и ASCII. Любую другую кодировку нужно будет рассматривать как часть байтов и использовать пакет, такой как go-charset, для правильной обработки. - person Jeremy Wall; 08.04.2012
comment
Тип rune — это UTF-32. UTF-16 — это пакет unicode/utf16. - person ; 08.04.2012
comment
Тип rune - это кодовая точка Unicode, это просто число int32, это означает, что фрагмент []rune по сути представляет собой фрагмент символов utf-32. и вы поддерживаете собственное преобразование между ними, поэтому я полагаю, вы можете сделать так, чтобы utf-8 и utf32 поддерживались изначально. - person Jeremy Wall; 08.04.2012

Я считаю, что вот ответ: https://stackoverflow.com/a/6933412/1315563

Без самостоятельного написания конвертации или использования стороннего пакета это сделать невозможно. Вы можете попробовать использовать это: http://code.google.com/p/go-charset< /а>

person yazu    schedule 06.04.2012