Я новичок в PHP и преобразованиях символов, поэтому заголовок моего вопроса может быть ошибочным.
Я анализирую один веб-сайт, и в одной строке, я хочу разобрать, это специальный символ, подобный этому:
<tag>Hello! My name is ženk!</tag>
Теперь этот текст я буду вставлять в свою базу данных, поэтому мне нужно ž
превращается в персонажаž
‘(его код ASCII).
использование html_entity_decode()
и явно указать кодировку:
$string = html_entity_decode($string, ENT_QUOTES, "utf-8");
для дальнейшего использования: PHP строковые функции
Попробуйте код ниже.
$input = "Hello! My name is ž";
$output = preg_replace_callback("/(&#[0-9]+;)/", function($m) { return mb_convert_encoding($m[1], "UTF-8", "HTML-ENTITIES"); }, $input);
echo $output;
надеюсь это поможет.
Используйте приведенный ниже код для решения этой проблемы
$ string_to_convert = «ваша строка»;
$ Utf8_converted_string = utf8_encode ($ string_to_convert);
echo $ utf8_converted_string // Вывод символов utf8
Проблема не в отображение данные в браузере, потому что я попробовал следующее, и он работал отлично:
<?php echo '<tag>Hello! My name is ž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` ...");