Я извлекаю данные из внешней базы данных (я не могу ее редактировать, поэтому не советую этого делать), для которой установлено внутреннее кодирование cp1250_general_ci.
Мне нужно отобразить эти данные как UTF-8, но я не могу заставить их работать. Я использую это для получения данных:
$dsn = 'mysql:dbname=eklient;host=127.0.0.1';
$user = 'root';
$password = 'root';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
$this->view->warning = 'Connection failed: ' . $e->getMessage();
}
$sql = 'SELECT * FROM zam z WHERE z.id_object = :id_object;';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':id_object' => 1));
$data = $sth->fetchObject();
Исходная строка:
poznamka<br /> riadok1 ľščťžýáí
Когда я печатаю это так:
echo iconv('Windows-1250', 'UTF-8', $data->poznamka);
Я понял:
poznamka<br /> riadok1 ?š??žýáí
Таким образом, некоторые символы заменяются знаками вопроса. Есть идеи, как это решить?
Да, у меня есть правильные метатеги в HTML.