Конвертирование кодировок, кодировка файлов в Linux

Конвертирование кодировок чаще всего приходится использовать при работе с базами данных когда какая-то информация на сайте отображается некорректно

 

Использование iconv для изменения кодировки текстовых документов

 

Кодировка изменяется при помощи стандартной утилиты iconv

iconv позволяет перекодировать текстовые документы, в том числе — дампы баз данных, которые потом можно загружать в непосредственно в БД

 

Введя в консоли iconv можно получится список всех кодировок, которые поддерживаются.

 

iconv для преобразования кодировки документа используется так:

 

iconv -f cp1251 -t UTF-8 -o database.sql > database_utf8.sql

 

-f — исходная кодировка (from)

-t — кодировка, в которую преобразуется документ (to)

 

На практике результат преобразования часто сразу загружается в БД

 

iconv -f cp1251 -t UTF-8 -o database.sql | mysql -u root -p db1

 

Исходный файл при этом не изменяется.

 

 

Конвертирование графических изображений

Графические изображения можно изменять при помощи утилиты convert, входящей в состав пакета imagemagic

Конвертация изображения одного формата в другой выполняется предельно просто

convert picture.png picture.jpg

 

Преобразовывать большое количество изображений в каталоге в другой формат можно простым однострочником

i=png; for ii in *.$i; do convert «$ii» «${ii/.$i/.jpg}»; done

 

Также convert позволяет изменять размер изображений

convert -resize 50% picture.png picture.jpg

 

convert -resize 1024×768 picture1.png picture2.png

Во втором случае задается размер целевого изображения после преобразования

 

Изображение можно перевернуть или повернуть на произвольный угол

convert -rotate 180 picture1.png picture3.png

 

Или можно нанести произвольный текст — например, информацию об авторских правах.

convert -fill black -pointsize 36 -font arial -draw text 30.80 «Copyright (с)
2017 server-gu.ru.» picture1.png picture4.png

 

В данном случае задается надпись и шрифт, надпись будет смещена по оси х на 20 px и на 70 px по оси y от левого верхнего угла.