Maison  >  Questions et réponses  >  le corps du texte

Utilisation correcte de mysqli set_charset()

J'ai des questions sur l'utilisation correcte $mysqli->set_charset()。我已经很多年没有在我的网站上使用此功能了。现在我正在重写我的连接脚本,并希望正确应用 $mysqli->set_charset() . Actuellement, le site est toujours basé sur "latin1" (mais je vais bientôt passer à UTF-8 (utf8mb4).)

MySQLi sur mon serveur (que je gère moi-même) utilise une configuration latin1 depuis des années. Je pensais que ça ne ferait pas de mal d'ajouter ça maintenant $mysqli->set_charset("latin1") ?

Si MySQLi est configuré par défaut en utf8mb4, y aura-t-il des caractères codés étranges sur mon site Web sans la fonction $mysqli->set_charset() ?

Je souhaite confirmer mon hypothèse.

P粉908643611P粉908643611306 Il y a quelques jours349

répondre à tous(1)je répondrai

  • P粉674999420

    P粉6749994202024-01-11 15:16:05

    mysqli::set_charset() Définit le jeu de caractères de la connexion, c'est-à-dire "toutes les chaînes que j'envoie via cette connexion seront codées en utilisant this > et je veux que l'encodage revienne". Vous devez faire correspondre cela avec l'encodage que vous utilisez du côté PHP.

    Autrement dit, même si le paramètre actuel est incorrect, si vous modifiez la valeur actuelle, cela peut entraîner une corruption des données. En effet, dans certains cas, les données corrompues lors du transfert de votre base de données vers votre base de données seront corrompues de la même manière tant que les paramètres sont cohérents.

    Avant d'apporter des modifications, vous devez déterminer quel encodage est actuellement utilisé et si les données de la base de données sont corrompues. À partir de là, vous pouvez tracer un chemin pour garantir que tous les encodages correspondent, que vos données sont codées et traitées correctement à toutes les étapes et que les données existantes sont réparées.

    Comme toujours, veuillez consulter le message principal : UTF-8 partout

    Pensées supplémentaires :

  • Annulerrépondre