К сожалению, это не может быть обратимо с помощью преобразования php. Я только что создал PHP-скрипт, который пробует все комбинации, более одного раза (до 5 раз), и ни один из них не дает «japón». Так что это невозможно.
сценарий:
<?php
$encodings=mb_list_encodings();
foreach($encodings as $enc_to) {
foreach($encodings as $enc_from) {
$str="Noël, japón, Świata";
for ($i=0;$i<5;$i++) {
$str=mb_convert_encoding($str,$enc_to,$enc_from);
echo "$enc_from -> $enc_to ($i): ".$str."\n";
echo "$enc_from -> $enc_to ($i) + html_entity_decode: ".html_entity_decode($str)."\n";
echo "$enc_from -> $enc_to ($i) + htmlspecialchars_decode: ".htmlspecialchars_decode($str)."\n";
echo "$enc_from -> $enc_to ($i) + urldecode: ".urldecode($str)."\n";
echo "$enc_from -> $enc_to ($i) + htmlentities: ".htmlentities($str)."\n";
echo "$enc_from -> $enc_to ($i) + htmlspecialchars: ".htmlspecialchars($str)."\n";
echo "$enc_from -> $enc_to ($i) + urlencode: ".urlencode($str)."\n";
}
}
}
... нет выходного оглавлению уловов нет «ЯПОНИЯ»
сделать вас знаете, почему они были повреждены? Может быть, из-за неправильной кодировки в таблице или это была вставка/обновление php? – malta
Да @Micallef! Скорее всего, из-за передачи базы данных! Теперь сортировка в raw задана как «utf8_general_ci» Но теперь я просто хочу использовать данные в таблице и больше не буду вставлять их. Есть ли все равно, чтобы вернуть их к нормальной жизни? –
вы можете использовать 'preg_replace', чтобы заменить символы, если они неизменно неверны. – malta