Ошибки кодировки PHP и pgAdmin

Есть база данных, в ней таблица. Данные в таблицу попадают с сайта через PHP. Во-первых, когда я пытаюсь выловить ошибку вставки данных через PHP, вместо букв появляются знаки вопросов, соответственно невозможно понять, что конкретно это за ошибка. Также, когда я вношу в таблицу что-либо русское, pgAdmin выдает следующее: 'charmap' codec can't decode byte 0x98 in position 1: character maps to . Что необходимо поменять или переустановить, чтобы русский язык отображался как через PHP так и через pgAdmin?

Ошибка, отловленная через PHP

Скрипт PHP:

<?php
include "styles.php";
session_start();

require_once 'connect.php';

if ($_POST['name'] || $_POST['username'] || $_POST['password'] || $_POST['password_confirm']) {
    $name = $_POST['name'];
    $login = $_POST['username'];
    $password = $_POST['password'];
    $password_confirm = $_POST['password_confirm'];
    if (isset($_POST['email'])) {
        $email = $_POST['email'];
    } else {
        $email = null;
    }
    if ($password === $password_confirm) {
        $values = array_slice($_POST, 0, 4);
        $result = pg_insert($conn, "users", $values);
        if (!$result) {
            $error = pg_last_error($conn);
            if (strpos($error, 'duplicate key value violates unique constraint') !== false) {
                $_SESSION['message'] = 'Пользователь с таким именем уже существует';
                header('Location: ../register.php');
            } else {
                $_SESSION['message'] = 'Ошибка при регистрации пользователя';
                header('Location: ../register.php');
            }
        }
    } else {
        $_SESSION['message'] = 'Пароли не совпадают';
        header('Location: ../register.php');
    }
} else {
    $_SESSION['message'] = 'Заполните обязательные поля';
    header('Location: ../register.php');
}

?>

Ответы (0 шт):