Проект

Общее

Профиль

Новости

Записки и мысли: Делаем фотографию с камеры в псевдотекстовом формате

Добавил(а) Михаил Губин 3 месяца назад

Создание фотографии с помощью камеры и её сохранение в виде файла — одна из самых распространённых задач для программистов. Это может пригодиться для создания приложений, связанных с фото- и видеоконтентом, для обработки изображений и многого другого.

В этой статье я расскажу, как сделать фотографию с камеры и сохранить её в виде файла на компьютере. Для этого мы будем использовать библиотеку OpenCV для Python.

Установка OpenCV

Для начала установим библиотеку OpenCV. Это можно сделать с помощью менеджера пакетов pip:

apt-get install python3-opencv -y

Теперь, когда у нас установлена библиотека OpenCV, мы можем приступить к написанию кода.

Создание окна для захвата изображения

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

import cv2

# Создаем окно для захвата изображения
cap = cv2.VideoCapture(0)

# Проверяем, открылась ли камера
if not cap.isOpened():
    print("Не удалось открыть камеру")
    exit()

# Устанавливаем размер окна
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)

while True:
    # Захватываем кадр
    ret, frame = cap.read()

    # Отображаем кадр
    cv2.imshow('Камера', frame)

    # Ждем нажатия клавиши для сохранения кадра
    if cv2.waitKey(1) & 0xFF == ord('s'):
        break

# Сохраняем кадр
cv2.imwrite('captured_image.jpg', frame)

# Закрываем окно
cv2.destroyAllWindows()
cap.release()

В этом коде мы сначала импортируем библиотеку OpenCV. Затем создаём объект cap, который представляет собой видеопоток с камеры. Мы проверяем, открылась ли камера, и если да, то устанавливаем размер окна.

Далее мы входим в бесконечный цикл, в котором захватываем кадр с камеры и отображаем его в окне. Пользователь может нажать клавишу 's' для сохранения кадра. Когда пользователь нажимает эту клавишу, мы выходим из цикла и сохраняем кадр в файл под названием 'captured_image.jpg'.

После сохранения кадра мы закрываем все окна и освобождаем ресурсы, связанные с камерой.

Записки и мысли: Как с помощью bash проверить домен

Добавил(а) Михаил Губин 3 месяца назад

В этой статье я расскажу вам, как с помощью командной строки Bash проверить срок регистрации домена и его владельца.

Доменное имя — это уникальное имя сайта в интернете, которое состоит из букв и цифр. Оно используется для идентификации веб-сайта в сети. Доменное имя должно быть зарегистрировано у регистратора доменов. Регистрация домена обычно происходит на год или несколько лет. После истечения срока регистрации домен может быть продлен или удален.

Для проверки срока регистрации домена и его владельца можно использовать следующие команды:

  1. Проверка срока регистрации домена:

Команда whois позволяет получить информацию о домене, включая дату его регистрации и срок действия. Для этого нужно ввести команду whois с именем домена:

whois example.com

В результате выполнения этой команды вы получите информацию о домене example.com, включая дату регистрации и срок действия.

  1. Проверка владельца домена:

Чтобы узнать, кто является владельцем домена, можно использовать команду dig:

dig example.com +noall +answer

Эта команда выведет информацию о записи NS (Name Server) для домена example.com. Владельцем домена будет тот, кто указан в качестве администратора для этих записей NS.

  1. Проверка статуса домена:

Если вы хотите узнать, активен ли домен или нет, можно использовать команду nslookup:

nslookup example.com

Эта команда покажет IP-адрес сервера, на котором размещен сайт example.com. Если IP-адрес не найден, значит домен не активен.

  1. Проверка истории домена:

Если вы хотите узнать историю домена, то можно использовать специализированные сервисы, такие как Wayback Machine (https://archive.org/web/). Этот сервис позволяет увидеть, как выглядел сайт в прошлом.

  1. Проверка домена на наличие вредоносного ПО:

Если вы хотите убедиться, что домен не содержит вредоносного программного обеспечения, можно использовать онлайн-сервисы, такие как VirusTotal (https://www.virustotal.com/). Этот сервис позволяет сканировать URL-адреса на наличие вирусов и других угроз безопасности.

  1. Проверка доступности домена:

Если вы хотите проверить, доступен ли домен для регистрации, можно использовать онлайн-сервисы, такие как DomainTools (https://www.domaintools.com/). Этот сервис позволяет проверить доступность домена для регистрации.

  1. Проверка стоимости домена:

Если вы хотите узнать стоимость домена, можно использовать онлайн-сервисы, такие как GoDaddy (https://www.godaddy.com/). Этот сервис позволяет узнать стоимость регистрации домена.

  1. Проверка SEO-оптимизации домена:

Если вы хотите проверить, насколько хорошо оптимизирован домен для поисковых систем, можно использовать онлайн-сервисы, такие как Ahrefs (https://ahrefs.com/). Этот сервис позволяет проанализировать SEO-оптимизацию домена.

  1. Проверка репутации домена:

Если вы хотите убедиться, что домен имеет хорошую репутацию, можно использовать онлайн-сервисы, такие как Moz (https://moz.com/). Этот сервис позволяет оценить репутацию домена.

  1. Проверка SSL-сертификата домена:

Если вы хотите проверить, есть ли у домена SSL-сертификат, можно использовать онлайн-сервисы, такие как SSL Checker (https://www.sslchecker.com/). Этот сервис позволяет проверить наличие SSL-сертификата у домена.

Важно помнить, что при использовании командной строки Bash необходимо соблюдать осторожность и не вводить конфиденциальную информацию, такую как пароли или логины.

Записки и мысли: Certinfo. Работаем с сертификатами в Linux

Добавил(а) Михаил Губин 3 месяца назад

Для работы с сертификатами в Linux можно использовать различные инструменты и утилиты. Один из таких инструментов — certinfo. Он позволяет просматривать информацию о сертификатах, проверять их подлинность и выполнять другие операции.

Установка certinfo

Для начала нужно установить certinfo. В зависимости от дистрибутива Linux, процесс установки может немного отличаться. Например, в Ubuntu вы можете установить его с помощью следующей команды:

sudo apt install certinfo

После установки вы можете проверить версию certinfo, выполнив команду:

certinfo --version

Просмотр информации о сертификате

Теперь, когда certinfo установлен, вы можете использовать его для просмотра информации о сертификате. Допустим, у вас есть файл server.crt, который содержит сертификат. Вы можете просмотреть информацию о нём, используя следующую команду:

certinfo server.crt

Эта команда выведет основную информацию о сертификате, такую как его владелец, срок действия, подпись и т.д.

Проверка подлинности сертификата

Если вы хотите убедиться, что сертификат является подлинным, вы можете использовать certinfo для проверки его цепочки доверия. Для этого вам понадобится файл server.key, который содержит закрытый ключ, соответствующий сертификату.

certinfo -verify server.crt server.key

Эта команда проверит, что сертификат был подписан доверенным центром сертификации и что он соответствует закрытому ключу.

Другие возможности certinfo

Certinfo также предоставляет множество других возможностей, таких как просмотр информации о сертификате в формате JSON, экспорт информации в текстовый файл и многое другое. Вы можете ознакомиться с полным списком команд, выполнив команду:

certinfo --help

Заключение

Certinfo — это мощный инструмент для работы с сертификатами в Linux. Он позволяет просматривать информацию о сертификатах, проверять их подлинность и выполнять другие операции. Используйте его для упрощения работы с сертификатами и обеспечения безопасности ваших систем.

Записки и мысли: Регулирование оборота лекарств в РФ

Добавил(а) Михаил Губин 3 месяца назад

Регулирование оборота лекарств в Российской Федерации осуществляется на основе комплекса законодательных актов, включая федеральные законы, подзаконные нормативные акты и законы субъектов РФ. Система регулирования оборота лекарств направлена на обеспечение безопасности и качества медикаментов, контроль за их производством, обращением и использованием.

Основой законодательства в этой области является Федеральный закон "О лекарственных средствах" от 12 апреля 2010 года № 61-ФЗ. Этот закон регулирует порядок обращения лекарственных средств на территории России, устанавливает требования к их качеству, безопасности, регистрации, сертификации и лицензированию. Он также регулирует вопросы контроля за оборотом и использованием лекарственных средств, включая правила рекламирования и продажи лекарств.

Помимо федерального закона, важную роль играют подзаконные нормативные акты, включая постановления Правительства РФ, приказы Минздрава России, Федеральной службы по надзору в сфере здравоохранения и другие. Например, Правительство РФ утверждает перечень жизненно важных и необходимых лекарств, а также устанавливает процедуры и требования к регистрации лекарственных средств.

Кроме того, каждый субъект РФ имеет право принимать свои законы и нормативные акты в области оборота лекарств, если они не противоречат федеральному законодательству. Например, главы региональных министерств здравоохранения могут устанавливать дополнительные требования к аптекам или аптечной деятельности на территории своего субъекта.

Таким образом, регулирование оборота лекарств в России осуществляется на многоуровневой основе, с учетом федерального законодательства, подзаконных актов и законов субъектов РФ. Главная цель данной системы - обеспечение доступности безопасных и качественных лекарств для населения и обеспечение контроля за их оборотом в стране.

Записки и мысли: Парсим БД продаж и выводим в таблицу в PostgreSQL

Добавил(а) Михаил Губин 3 месяца назад

Для парсинга базы данных продаж и вывода результатов в таблицу в PostgreSQL можно использовать различные инструменты и языки программирования. В этой статье мы рассмотрим пример использования Python и SQL для выполнения этой задачи.

Шаг 1: Подготовка данных

Предположим, у нас есть база данных продаж, которая содержит следующие столбцы:

  • id - уникальный идентификатор продажи
  • product_name - название продукта
  • quantity - количество проданного товара
  • price - цена за единицу товара
  • total_cost - общая стоимость продажи

Эти данные могут быть представлены в виде CSV-файла или любой другой структурированной формы.

Шаг 2: Импорт данных в PostgreSQL

Прежде чем мы сможем анализировать данные, нам нужно импортировать их в базу данных PostgreSQL. Для этого мы можем использовать Python и библиотеку psycopg2. Вот пример кода, который импортирует данные из CSV-файла в таблицу sales:

import psycopg2

# Подключение к базе данных PostgreSQL
conn = psycopg2.connect("host=localhost dbname=mydatabase user=postgres password=mypassword")
cursor = conn.cursor()

# Создание таблицы sales, если она еще не существует
cursor.execute("""
    CREATE TABLE IF NOT EXISTS sales (
        id SERIAL PRIMARY KEY,
        product_name VARCHAR(255),
        quantity INT,
        price DECIMAL(10, 2),
        total_cost DECIMAL(10, 2)
    );
""")

# Загрузка данных из CSV-файла в таблицу sales
with open('sales.csv', 'r') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        cursor.execute("INSERT INTO sales (product_name, quantity, price, total_cost) VALUES (%s, %s, %s, %s)",
                       (row['product_name'], row['quantity'], row['price'], row['total_cost']))

# Сохранение изменений и закрытие соединения
conn.commit()
cursor.close()
conn.close()

Шаг 3: Вывод данных в таблицу

Теперь, когда данные загружены в базу данных, мы можем вывести их в таблицу с помощью SQL-запроса. Вот пример кода, который выводит все записи из таблицы sales:

SELECT * FROM sales;

Если мы хотим отфильтровать данные по определенному критерию, например, по названию продукта, мы можем использовать следующий запрос:

SELECT * FROM sales WHERE product_name = 'Product X';

Шаг 4: Анализ данных

После того как данные были выведены в таблицу, мы можем анализировать их с помощью различных инструментов, таких как SQL, Python или R. Например, мы можем подсчитать общее количество продаж каждого продукта:

SELECT product_name, COUNT(*) AS total_sales
FROM sales
GROUP BY product_name
ORDER BY total_sales DESC;

Мы также можем вычислить общую выручку от продаж:

SELECT SUM(total_cost) AS total_revenue
FROM sales;

Записки и мысли: Физическая и логическая репликация в PostgreSQL

Добавил(а) Михаил Губин 3 месяца назад

Физическая и логическая репликация в PostgreSQL — это два метода синхронизации данных между серверами баз данных. Они отличаются тем, как происходит передача данных между серверами.

Физическая репликация использует для передачи данных файловую систему. Это значит, что данные копируются непосредственно с одного сервера на другой. В этом случае, когда происходит изменение данных на одном сервере, они автоматически обновляются на другом.

Логическая репликация использует логические операции для передачи данных. Это значит, что данные копируются через SQL-запросы. Когда происходит изменение данных на одном сервере, эти изменения транслируются на другой сервер в виде SQL-запросов.

Оба метода имеют свои преимущества и недостатки. Физическая репликация быстрее и проще в настройке, но она требует больше ресурсов и может привести к проблемам с безопасностью данных. Логическая репликация более безопасна и экономична, но она медленнее и сложнее в настройке.

Примеры команд для физической репликации:

CREATE TABLE my_table (
    id SERIAL PRIMARY KEY,
    data TEXT NOT NULL
);

SELECT pg_start_backup('label');

COPY my_table TO '/path/to/my_table.dump';

SELECT pg_stop_backup();

Примеры команд для логической репликации:

LISTEN my_channel;

NOTIFY my_channel;

CREATE PUBLICATION my_publication FOR ALL TABLES;

CREATE SUBSCRIPTION my_subscription CONNECTION 'connection_string' PUBLICATION my_publication;

Записки и мысли: Типы данных в PostgreSQL

Добавил(а) Михаил Губин 3 месяца назад

PostgreSQL — это объектно-реляционная система управления базами данных (СУБД), которая поддерживает широкий спектр типов данных. В этой статье мы рассмотрим различные типы данных, поддерживаемые PostgreSQL, и приведём примеры их использования.

Числовые типы данных

PostgreSQL поддерживает несколько числовых типов данных, включая целые числа, числа с плавающей точкой и числа с фиксированной точкой. Вот некоторые из них:

-- Целое число без знака
CREATE TABLE integers (
    id SERIAL PRIMARY KEY,
    value INTEGER NOT NULL
);

-- Целое число со знаком
CREATE TABLE signed_integers (
    id SERIAL PRIMARY KEY,
    value SMALLINT NOT NULL
);

-- Число с плавающей точкой
CREATE TABLE floats (
    id SERIAL PRIMARY KEY,
    value FLOAT NOT NULL
);

-- Число с фиксированной точкой
CREATE TABLE fixed_point (
    id SERIAL PRIMARY KEY,
    value DECIMAL(10,2) NOT NULL
);

Символьные типы данных

PostgreSQL также поддерживает символьные типы данных для хранения строк текста. Вот некоторые из них:

-- Строка фиксированной длины
CREATE TABLE fixed_length_strings (
    id SERIAL PRIMARY KEY,
    value CHAR(10) NOT NULL
);

-- Строка переменной длины
CREATE TABLE variable_length_strings (
    id SERIAL PRIMARY KEY,
    value VARCHAR(100) NOT NULL
);

-- Пустая строка
CREATE TABLE empty_strings (
    id SERIAL PRIMARY KEY,
    value TEXT NOT NULL
);

-- Символ
CREATE TABLE characters (
    id SERIAL PRIMARY KEY,
    value CHARACTER(1) NOT NULL
);

-- Биннарный объект
CREATE TABLE binary_objects (
    id SERIAL PRIMARY KEY,
    value BYTEA NOT NULL
);

-- Уникод
CREATE TABLE unicode_strings (
    id SERIAL PRIMARY KEY,
    value UNICODE NOT NULL
);

Дата и время

PostgreSQL предоставляет несколько типов данных для работы с датами и временем:

-- Дата
CREATE TABLE dates (
    id SERIAL PRIMARY KEY,
    value DATE NOT NULL
);

-- Время
CREATE TABLE times (
    id SERIAL PRIMARY KEY,
    value TIME NOT NULL
);

-- Дата и время
CREATE TABLE datetimes (
    id SERIAL PRIMARY KEY,
    value TIMESTAMP NOT NULL
);

-- Интервал времени
CREATE TABLE time_intervals (
    id SERIAL PRIMARY KEY,
    value INTERVAL NOT NULL
);

-- Позиционное время
CREATE TABLE timestamps_with_timezone (
    id SERIAL PRIMARY KEY,
    value TIME WITH TIME ZONE NOT NULL
);

-- Таймстемпы с поддержкой микросекунд
CREATE TABLE timestamps_with_microseconds (
    id SERIAL PRIMARY KEY,
    value TIMESTAMP WITH TIME ZONE NOT NULL
);

Битовые типы данных

Помимо стандартных числовых и символьных типов данных, PostgreSQL также поддерживает битовые типы данных:

-- Битовый вектор
CREATE TABLE bit_vectors (
    id SERIAL PRIMARY KEY,
    value BIT VECTOR NOT NULL
);

-- Битовая строка
CREATE TABLE bit_strings (
    id SERIAL PRIMARY KEY,
    value BIT STRING NOT NULL
);

Геометрические типы данных

PostgreSQL также поддерживает геометрические типы данных для работы с пространственными данными:

-- Точка
CREATE TABLE points (
    id SERIAL PRIMARY KEY,
    value POINT NOT NULL
);

-- Линия
CREATE TABLE lines (
    id SERIAL PRIMARY KEY,
    value LINE NOT NULL
);

-- Полигон
CREATE TABLE polygons (
    id SERIAL PRIMARY KEY,
    value POLYGON NOT NULL
);

Типы данных JSON

PostgreSQL также поддерживает типы данных JSON для работы с структурированными данными:

-- JSON документ
CREATE TABLE json_documents (
    id SERIAL PRIMARY KEY,
    value JSON NOT NULL
);

-- JSON массив
CREATE TABLE json_arrays (
    id SERIAL PRIMARY KEY,
    value JSON ARRAY NOT NULL
);

Другие типы данных

Помимо вышеперечисленных типов данных, PostgreSQL также поддерживает множество других типов данных, таких как массивы, UUID, деньги, идентификаторы и так далее.

Записки и мысли: Операторы и спецсимволы в PostgreSQL

Добавил(а) Михаил Губин 3 месяца назад

Операторы и специальные символы в PostgreSQL играют важную роль при написании SQL-запросов. Они позволяют выполнять различные операции над данными, такие как сравнение, фильтрация, сортировка и многое другое. В этой статье мы рассмотрим основные операторы и специальные символы, которые используются в PostgreSQL, а также приведем примеры их использования.

Операторы сравнения

Операторы сравнения используются для проверки равенства или неравенства значений. В PostgreSQL поддерживаются следующие операторы сравнения:

=  // Равно
<>  // Не равно
!=  // Не равно (альтернативный синтаксис)
<   // Меньше
<=  // Меньше или равно
>   // Больше
>=  // Больше или равно

Примеры использования операторов сравнения:

SELECT * FROM users WHERE age > 18;  // Выбрать пользователей старше 18 лет
SELECT * FROM products WHERE price <= 100;  // Выбрать продукты стоимостью до 100 рублей

Операторы логические

Операторы логические используются для объединения условий в более сложные выражения. В PostgreSQL поддерживаются следующие операторы логические:

AND  // И
OR   // ИЛИ
NOT  // НЕ

Примеры использования логических операторов:

SELECT * FROM customers WHERE city = 'Москва' AND country = 'Россия';  // Выбрать клиентов из Москвы и России
SELECT * FROM orders WHERE order_date >= '2022-01-01' OR order_date <= '2022-12-31';  // Выбрать заказы за весь 2022 год

Спецсимволы

Спецсимволы в PostgreSQL используются для обозначения различных операций и структур данных. Вот некоторые из наиболее часто используемых спецсимволов:

` `  // Одинарные кавычки (для экранирования строк)
" "  // Двойные кавычки (для имен объектов)
` `  // Обратные кавычки (для литеральных строк)
$   // Знак доллара (для переменных)
%   // Процент (для LIKE операторов)
@   // Атом (@> для операторов списков)
*   // Звездочка (для выборки всех столбцов)

Примеры использования спецсимволов:

SELECT * FROM employees WHERE first_name = 'Иван';  // Использование одинарных кавычек для строкового значения
SELECT * FROM "Customers" WHERE id = 123;  // Использование двойных кавычек для имен таблиц и столбцов
SELECT * FROM test WHERE name LIKE '%test%';  // Использование оператора LIKE с процентами для поиска подстроки

Это лишь небольшой обзор операторов и спецсимволов в PostgreSQL. Для получения полной информации о каждом из них рекомендуется обратиться к документации PostgreSQL.

Записки и мысли: Константы в PostgreSQL

Добавил(а) Михаил Губин 3 месяца назад

Константы в SQL-запросах — это неизменяемые значения, которые используются для фильтрации данных, заполнения столбцов и других операций. В PostgreSQL есть несколько типов констант, которые мы рассмотрим ниже.

Строковые константы

Строковые константы в PostgreSQL могут быть заключены в двойные кавычки ("") или одинарные кавычки (''). Примеры:

SELECT 'Это строковая константа';
SELECT "Это тоже строковая константа";

Обратите внимание, что если строка содержит кавычку, то она должна быть экранирована обратным слешем (). Например:

SELECT 'Это строковая константа с \"кавычкой\" внутри';
SELECT "Это тоже строковая константа, но с \'одинарной\' кавычкой внутри";

Unicode-экранированные строковые константы

PostgreSQL поддерживает Unicode, поэтому вы можете использовать символы из разных наборов символов в ваших строковых константах. Однако, если вы хотите использовать символ, который является специальным для SQL (например, кавычка), вам нужно будет экранировать его с помощью обратного слеша ().

Пример:

SELECT '\u0041\u0062\u0063' AS "ABC"; -- Представление строки "ABC" в кодировке UTF-8

Битовые строковые константы

Битовые строковые константы в PostgreSQL начинаются с двоеточия (:), за которым следует последовательность нулей и единиц. Они используются для представления двоичных данных.

Пример:

SELECT :01010101 AS "Битовая строка";

Цифровые константы

Цифровые константы в SQL могут быть представлены в десятичной, восьмеричной или шестнадцатеричной форме.

Примеры:

-- Десятичная форма
SELECT 123 AS "Десятичное число";

-- Восьмеричная форма
SELECT 0123 AS "Восьмеричное число";

-- Шестнадцатеричная форма
SELECT X'00A3' AS "Шестнадцатеричное число";

Кавычки в виде доллара

В PostgreSQL также можно использовать кавычки в виде доллара ($) для обозначения строковых констант. Это полезно, когда вы хотите включить кавычки в строку без необходимости экранирования.

Пример:

SELECT $'Это строковая константа с "кавычкой" внутри' AS "Кавычки в виде доллара";

Важно отметить, что использование кавычек в виде доллара может привести к конфликтам с переменными, так как они также обозначаются знаком доллара. Поэтому будьте внимательны при использовании этого типа констант.

Записки и мысли: Кириллические символы (не UTF-8) в PostgreSQL

Добавил(а) Михаил Губин 3 месяца назад

Кириллические символы являются важной частью многих языков, включая русский, украинский, белорусский и другие. Однако, при работе с базами данных, такими как PostgreSQL, необходимо учитывать особенности кодировки символов. В этой статье мы рассмотрим, как правильно экранировать кириллические символы в PostgreSQL, чтобы избежать ошибок и проблем с отображением данных.

Что такое экранирование?

Экранирование – это процесс добавления специальных символов к строке текста для предотвращения интерпретации некоторых символов как управляющих. Это особенно важно при работе с базами данных и скриптами, где некоторые символы могут иметь специальное значение.

Почему нужно экранировать кириллические символы?

PostgreSQL использует кодировку UTF-8 по умолчанию, которая поддерживает большинство символов, включая кириллические. Однако, если вы работаете с данными, которые были сохранены в другой кодировке, например, Windows-1251, вам может потребоваться экранировать кириллические символы, чтобы они корректно отображались в PostgreSQL.

Как экранировать кириллические символы?

Для экранирования кириллических символов в PostgreSQL можно использовать функцию encode(). Эта функция принимает два аргумента: имя кодировки и строку, которую нужно преобразовать. Например, если у вас есть строка в кодировке Windows-1251 и вы хотите преобразовать ее в UTF-8, вы можете использовать следующий код:

SELECT encode('строка в Windows-1251', 'UTF-8');

Этот код преобразует строку 'строка в Windows-1251' в UTF-8 и возвращает результат.

Примеры команд

Давайте рассмотрим несколько примеров команд, которые помогут вам экранировать кириллические символы в PostgreSQL:

  1. Преобразование строки в UTF-8:
SELECT encode('Пример строки в Windows-1251', 'UTF-8');
  1. Преобразование столбца таблицы в UTF-8:
UPDATE my_table
SET my_column = encode(my_column, 'UTF-8')
WHERE my_column IS NOT NULL;
  1. Преобразование всех строк в UTF-8:
ALTER TABLE my_table ALTER COLUMN my_column TYPE TEXT USING encode(my_column, 'UTF-8');
  1. Создание новой таблицы с колонками в UTF-8:
CREATE TABLE my_new_table (
    my_column TEXT DEFAULT ''::TEXT NOT NULL
);
(281-290/319)

Экспортировать в Atom