У меня есть два сервера Ubuntu:Сервер 1 - Ubuntu 16.04.5, PHP 7.0.32Сервер 2 - Ubuntu 14.04.5, PHP 7.2.9
Проблема: Сервер 1 печатает специальные символы, а Сервер 2 печатает страшный символ замены черного алмаза.
Выводы:
Оба сервера считывают данные из одной и той же таблицы MSSQL.
В файле php.ini обоих серверов закомментирован набор default_charset.Для проверки я установил для Сервера 2 значение default_charset = "UTF-8" и перезапустил apache, но не повезло.
Сетевой ответ обоих файлов показывает Content-Type: text / html;charset = UTF-8.
Также не используйте httpd.conf (я попытался установить его на сервере 2 для тестирования без удачи).
Оба сервера отображают UTF-8 при работе с языковой картой локали.
При открытии каждого файла в блокноте ++ по умолчанию для параметра Кодировка установлено значение «Кодировать в UTF-8».
Я не уверен, где еще проверить.Я знаю, что об этом уже спрашивали, но каждое решение, которое я нашел, до сих пор не помогало.Это как-то связано с версией PHP или версией Ubuntu?Что еще я могу проверить, что я, возможно, пропустил?Спасибо за помощь.
Редактировать 1 Код - это просто тестовый файл с оператором выбора и повторением результата.Это было просто создано, чтобы найти проблему, чтобы я мог исправить ее в реальном проекте.
Короче говоря, у меня есть пользователи, которые сначала печатают свои слуховые данные в слове, а затем копируют и вставляют в программу.К сожалению, я не могу обойти это.
Вот несколько строковых примеров того, что распечатывается.
Сервер 1: с розничной ориентациейСервер 2: с розничной ориентацией
Сервер 1: Фланаган Билтон, ОООСервер 2: Фланаган � ??Билтон, ООО
Сервер 1: Класс «С» аптекаСервер 2: Класс � ?? C� ??аптека
Редактировать 2 По-прежнему нужна помощь, поэтому вот тестовый код, используемый с каждого сервера Ubuntu на один сервер MSSQL.
$conn = connect();
$sql = "select ltrim(rtrim(additionalinformation)) as 'text' from tblsmdecision where petitionid = 4559";
$stmt = $conn->prepare($sql);
$stmt->execute();
$row = $stmt->fetch();
echo $row['text'];
function connect()
{
$host = 'xxx';
$db = 'xxx';
$user = 'xxx';
$pass = 'xxx';
$conn = new PDO("dblib:host=$host; dbname=$db", "$user", "$pass");
return $conn;
}