Эхо спецсимволов из mysql

У меня есть база данных Mysql с типом столбца varchar(8192) latin2_croatian_ci, Там я вставляю такой текст: Čćžvasfamižsafaš (это случайный текст со специальными символами). Когда я предпросматриваю данные в mysql, он имеет этот специфический символ (он не был заменен на ? или что-то другое).

я имею php страница

<!DOCTYPE html>
<?php
session_start();
include("somePhpFile");

$cid = $mysqli->escape_string($_GET["id"]);

$sql = "SELECT BODY FROM ... WHERE CLANAKID = '$cid'";
if($result = $mysqli->query($sql))
{
$clanak = mysqli_fetch_assoc($result);
$body = $clanak["BODY"];
}
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Some title</title>
<link rel="stylesheet" type="text/css" href="../Styles/Clanak.css?id=4" />
<link rel="stylesheet" type="text/css" href="../Styles/DefaultBody.css" />

<meta charset="UTF-8"/>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="../jQuery/Header.js"></script>
</head>

<body>
<?php include("someHeaderphp");?>
<div id="BodyDiv">
<?php echo($body); ?>
</div>
</body>

</html>

И когда я повторяю это на своей странице, все специальные символы заменяются на ? и другие персонажи. Что я мог сделать?

Вот мой Show create table:

CREATE TABLE `CLANAK` (
`CLANAKID` int(11) NOT NULL AUTO_INCREMENT,
`NASLOV` varchar(64) NOT NULL,
`BODY` varchar(8192) CHARACTER SET latin2 COLLATE latin2_croatian_ci NOT NULL,
`THUMBNAIL` varchar(1024) NOT NULL,
`AKTIVAN` int(11) NOT NULL DEFAULT '1',
PRIMARY KEY (`CLANAKID`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1

1

Решение

Во-первых, давайте сделаем некоторую отладку.

Пожалуйста предоставьте SHOW CREATE TABLE а также

Посмотрим SELECT col, HEX(col) ... чтобы выбросить то, что попало в таблицу. За ČćžvasfamižsafašХЕКС будет

3F3F3F76617366616D693F736166613F (???vasfami?safa?) - the text was messed up when storing.
C8E6BE76617366616D69BE73616661B9 - if it stored correctly into a latin2 column
C48CC487C5BE76617366616D69C5BE73616661C5A1 - correctly stored into utf8 (or utf8mb4)

Проблемы с символами UTF-8; то, что я вижу, не то, что я храню

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector