Преобразовать ссылку на символ HTML в UTF-8

Я новичок в PHP и преобразованиях символов, поэтому заголовок моего вопроса может быть ошибочным.

Я анализирую один веб-сайт, и в одной строке, я хочу разобрать, это специальный символ, подобный этому:

<tag>Hello! My name is &#382;enk!</tag>

Теперь этот текст я буду вставлять в свою базу данных, поэтому мне нужно &#382; превращается в персонажаž‘(его код ASCII).

1

Решение

использование html_entity_decode() и явно указать кодировку:

$string = html_entity_decode($string, ENT_QUOTES, "utf-8");

для дальнейшего использования: PHP строковые функции

2

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

Попробуйте код ниже.

$input = "Hello! My name is &#382";

$output = preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $input);

echo $output;

надеюсь это поможет.

0

Используйте приведенный ниже код для решения этой проблемы

$ string_to_convert = «ваша строка»;

$ Utf8_converted_string = utf8_encode ($ string_to_convert);

echo $ utf8_converted_string // Вывод символов utf8

0

Проблема не в отображение данные в браузере, потому что я попробовал следующее, и он работал отлично:

<?php echo '<tag>Hello! My name is &#382;enk!</tag>'; ?>

Проблема не в экономия данные в базе данных.

Проблема заключается в извлечении этого символа из базы данных.

Таким образом, вам нужно установить формат UTF-8, прежде чем обращаться к базе данных:

$mysqli->query("SET NAMES 'utf8'");
$mysqli->query("SET CHARACTER SET utf8");

Если вы используете mysqli:

$mysqli = new mysqli($db_host, $db_user, $db_password, $db_name);
if(mysqli_connect_errno()){
printf("DB Connect failed: %s\n", mysqli_connect_error());
exit();
}
// Add the UTF-8 Support
$mysqli->query("SET NAMES 'utf8'");
$mysqli->query("SET CHARACTER SET utf8");

// Query the database
$mysqli->query("SELECT column FROM `table` ...");
0
По вопросам рекламы [email protected]