Я хочу преобразовать строку CP932 в UTF-8.
В Ubuntu я могу преобразовать строку командой
iconv -f CP932 -t UTF-8 [input_file]
Но iconv в Apline 3.17 завершается с ошибкой: iconv: source charset CP932: Invalid argument.
Как добавить кодировку CP932 в iconv?
Команда вызывается из сценария ruby, поэтому я не придерживаюсь iconv, если есть лучший способ преобразовать строку CP932 в UTF-8 с помощью ruby или другого инструмента командной строки в Alpine.
CP932 (также называемый Windows-31J) — это вариант Shift-JIS. Это не то же самое.
Shift-JIS — это действительно семейство кодировок. Суть в том, чтобы искать кодировку под псевдонимом в iconv. Другой способ — спросить, как установить кодовую страницу или поддержку японского языка в Alpine Linux.

Скомпилируйте iconv из исходников, а не устанавливайте его с пакетом.
apk add --no-cache curl build-base
cd /tmp
curl -O https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz
tar xvf libiconv-1.17.tar.gz
cd libiconv-1.17/
iconv в /usr/local/bin:./configure
make
make install
cd /tmp
rm -rf libiconv-1.17/
rm libiconv-1.17.tar.gz
Теперь вы можете успешно запустить iconv с CP932. Вот пример:
echo "潤" > foo
file -i foo
foo: text/plain; charset=utf-8
iconv -f UTF-8 -t CP932 foo > foo.cp932
file -i foo.cp932
foo.cp932: text/plain; charset=unknown-8bit
и:
cat foo.cp932
��
iconv -f CP932 -t UTF-8 foo.cp932 > foo.utf8
file -i foo.utf8
foo.utf8: text/plain; charset=utf-8
и:
cat foo.utf8
潤
и:
md5sum foo
54282143d705814d6ba671b783f2e0ba foo
md5sum foo.utf8
54282143d705814d6ba671b783f2e0ba foo.utf8
Возможно, у него другое название. iconv имеет возможность вывести список кодовых страниц, которые он поддерживает. CP932 иногда называют Shift-JIS.