У меня есть база данных, которая имеет внесенные, который имеет столбец с именем «имени»Преобразование искаженных символов из базы данных
В этом имени, например у меня есть поле, которое имеет значение: 대한민êµâ€¢KOREA
Чтобы получить моя таблица была заполнена, я должен был использовать файл SQL, который имел длину в 99 тыс. строк, и у него были поля, заполненные как таковые ...
Теперь я могу сделать свой PHP-скрипт так, чтобы он дал мне фактическое представление, которое мне нужно для символов, которые должны быть 대한민국•KOREA
Я проверил конфигурацию своего сервера. Apache, PHP, MySQL все UTF-8 набор и готов ...
Update
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
CREATE TABLE IF NOT EXISTS `activeclans` (
`id` bigint(11) NOT NULL,
`name` text CHARACTER SET utf8 NOT NULL,
`location` text CHARACTER SET utf8 NOT NULL,
`playercount` int(11) NOT NULL,
`clanlevel` int(11) NOT NULL,
`score` int(11) NOT NULL,
`warswon` int(11) NOT NULL,
`warslost` int(11) NOT NULL,
`warstied` int(11) NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
--
-- Daten für Tabelle `activeclans`
--
INSERT INTO `activeclans` (`id`, `name`, `location`, `playercount`, `clanlevel`, `score`, `warswon`, `warslost`, `warstied`) VALUES
(1669110, '벽치는 ê³¨ë ˜ë“¤ #.#', 'South Korea', 48, 6, 21589, 44, 18, 1),
(1707076, 'THE HURRIKANEZ', 'International', 29, 5, 20241, 39, 17, 3),
(1710048, '+WARLORDS+', 'India', 42, 3, 20700, 5, 49, 0),
(1748604, 'الØجايا', 'Jordan', 40, 4, 21218, 27, 13, 2),
(1749793, 'Vindicaâž•ed', 'International', 50, 5, 22212, 32, 18, 4),
(1755056, 'Hunter hogs 101', 'United States', 44, 3, 20501, 5, 23, 2),
(1761757, 'دعم ÙˆØرب', 'Saudi Arabia', 45, 1, 22373, 0, 7, 0),
(1764157, 'tiwi warriors', 'Morocco', 49, 5, 21663, 36, 13, 3),
(1785753, 'INCAUDA VENENUM', 'France', 41, 4, 20412, 25, 8, 1),
(1797817, 'QUEENofURAGONs', 'Philippines', 49, 5, 24104, 38, 8, 1),
(1829886, 'Max clasher', 'Philippines', 43, 5, 20076, 32, 12, 0),
(1837025, 'DUCATO ACCADEMY', 'Italy', 38, 3, 22227, 12, 12, 1),
(1845435, 'shoook tower', 'Iran', 44, 4, 21531, 30, 10, 0),
(1876715, '無言', 'Japan', 48, 4, 20178, 5, 25, 0),
(343597774219, 'CLASH O'' TRASH', 'United States', 46, 1, 20790, 0, 0, 0);
/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;
/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;
/*!40101 SET [email protected]_COLLATION_CONNECTION */;
Это часть Sql файла.
Моя связь с Db выглядит следующим образом:
<?php
$con = new mysqli("localhost", "beep", "beep", "beep");
if ($con->connect_errno) {
printf("Connect failed: %s\n", $con->connect_error);
exit();
}
?>
И я это для отображения данных:
$table = "
<table border='1' align='center' cellspacing='3' cellpadding='3' style='border-collapse:collapse;'>
<tr>
<td>Clan ID</td>
<td>Clan Name</td>
<td>Location</td>
<td>Player Count</td>
<td>Clan Level</td>
<td>Score</td>
<td>Wars Won</td>
<td>Wars Lost</td>
<td>Wars Tied</td>
</tr>";
$clanResultQuery = "SELECT * FROM activeclans ORDER BY score DESC LIMIT 100";
if($activeClansResult = mysqli_query($con,$clanResultQuery)){
while($row = mysqli_fetch_array($activeClansResult)){
$table .="
<tr>
<td>".$row['id']."</td>
<td>".$row['name']."</td>
<td>".$row['location']."</td>
<td>".$row['playercount']."</td>
<td>".$row['clanlevel']."</td>
<td>".$row['score']."</td>
<td>".$row['warswon']."</td>
<td>".$row['warslost']."</td>
<td>".$row['warstied']."</td>
</tr>";
}
}
$table .= "</table>";
Вы должны проверить кодировку БД-источника и назначения, а также кодировка символов вашего файла SQL. Вероятно, он был установлен на latin1 или аналогичен в какой-то момент процесса. –
@ BrianKeller-Heikkila Теперь я не могу изменить файл SQL. –
Что такое кодировка символов в файле? Это похоже на правильные корейские персонажи или мусорные персонажи? Если это мусорные символы (и вы уверены, что ваш зритель может показать корейский), то, боюсь, вам, вероятно, понадобится создать новый файл SQL, который является UTF-8 (или любой другой символ, кодирующий исходный db). –