Вывод спецсимволов MySQLi

323
21 июля 2022, 12:30

Есть MySQLi база прикрученная к игровому серверу. В базу записываются рекорды игроков, никнейм и время за которое игрок прошел карту. Игрок может поставить себе абсолютно любой никнейм так как сервер работает через STEAM, некоторые игроки используют в никнеймах разные украшательства/спецсимволы. Записи с рекордом такого игрока в базу попадают в таком виде:

Вопрос, из этой базы я вывожу данные в HTML, как правильно преобразовать эти строки что бы никнеймы отображались корректно как в игре и вообще хотелось бы узнать что этот набор символов и букв значит чем и как его декодить?

Код который я имею сейчас, получаю данные из базы данных:

<?php
include "config.php";
$condition = "1";
if(isset($_GET['playerid'])){
   $condition = " PlayerID=".$_GET['playerid'];
}
$userData = mysqli_query($con,"select * from players WHERE ".$condition);
$response = array();
while($row = mysqli_fetch_assoc($userData)){
   $response[] = $row;
}
echo json_encode($response);
exit;

Далее вывожу полученные данные в таблицу:

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf8">
  <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
  <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
</head>
<div id='myapp'>
 
  <!-- Select All records -->
  <input type='button' @click='allRecords()' value='Select All users'>
  <br><br>
  <!-- Select record by ID -->
  <input type='text' v-model='playerid' placeholder="Enter Userid between 1 - 24">
  <input type='button' @click='recordByID()' value='Select user by ID'>
  <br><br>
  <!-- List records -->
  <table border='1' width='80%' style='border-collapse: collapse;'>
    <tr>
      <th>PlayerID</th>
      <th>Username</th>
      <th>SteamID</th>
      <th>PlayTime</th>
    </tr>
    <tr v-for='player in players'>
      <td>{{ player.PlayerID }}</td>
      <td>{{ player.User  }}</td>
      <td>{{ player.SteamID }}</td>
      <td>{{ player.Playtime }}</td>
    </tr>
  </table>
 
</div>
<script>
 var app = new Vue({
  el: '#myapp',
  data: {
    players: "",
    playerid: 0
  },
  methods: {
    allRecords: function(){
      axios.get('ajaxfile.php')
      .then(function (response) {
         app.players = response.data;
      })
      .catch(function (error) {
         console.log(error);
      });
    },
    recordByID: function(){
      if(this.playerid > 0){
 
        axios.get('ajaxfile.php', {
           params: {
             playerid: this.playerid
           }
        })
        .then(function (response) {
           app.players = response.data;
        })
        .catch(function (error) {
           console.log(error);
        });
      }
    }
  }
})
</script>
Answer 1

Для начала попробуй сменить кодировку базы на utf8mb4_general_ci

READ ALSO
Как работают аттрибуты в PHP 8?

Как работают аттрибуты в PHP 8?

В новой версии PHP(PHP 8) появилась возможность указывать аттрибуты

307
Привязка button к правому краю

Привязка button к правому краю

Суть вопросаЕсть у меня ListBox, который я задаю вот так:

396
Как можно пробежатьcя по кнопкам?

Как можно пробежатьcя по кнопкам?

В Windows Forms например, если создать 9 кнопок, можно ли по ним пробежаться и изменить в них текст?

328
Решено: System.Xml.Schema.XmlSchemaException: The element is not declared

Решено: System.Xml.Schema.XmlSchemaException: The element is not declared

Написал асинхронный парсер XML-файлов по URL, но не могу решить эту проблему, всегда вылетает ошибка:

418