Не каждому известно, что кодировкой содержимого файлов .go является UTF-8. Однако, это не единственная возможная кодировка. К примеру, пользователи Windows зачастую используют кодировку Windows-1250.

При работе со строками не в Юникоде вам нужно будет перевести содержимое в Юникод. Далее дана инструкция для кодирования и декодирования строк в Юникод и наоборот.

Премиум 👑 канал по Golang

Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎

Подписаться на канал

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК ЧАТ в Telegram

Как поменять кодировку строки в Golang?

1. Создайте файл win1250.txt с содержимым Gdańsk. Кодировкой файла должна быть windows-1250. Если вы не знаете, как это сделать, перейдите к шагу 4 и после выполнения шага 5, где создается файл в кодировке windows-1250, вы можете переименовать файл out.txt, а затем вернуться к шагу 2;
2. Создайте файл decode.go со следующим содержимым:

3. Запустите код через go run decode.go;
4. Посмотрите на вывод в терминале:

кодировка golang

5. Создайте файл encode.go со следующим содержимым:

6. Запустите код через go run encode.go;
7. Посмотрите на вывод в файле out.txt с кодировкой Windows-1250 и UTF-8.

Как создать код для замены кодировки в файле Go?

В пакете charmap есть тип Charset для простого изменения кодировки туда и обратно. Тип имплементирует NewDecoder, что создает структуру Decoder.

В шагах 1-3 показывается использование декодирования через Reader.

Кодирование работает аналогичным образом. Кодирование Writer создается, затем каждая строка записывается данным Writer и кодируется в кодировку Windows-1250.

Обратите внимание, что кодировка Windows-1250 была выбрана в качестве примера. В данном пакете есть многие другие варианты кодировки символов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *