Utilisation correcte de mysqli set_charset()
P粉908643611
P粉908643611 2024-01-10 16:58:50
0
1
390

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粉908643611
P粉908643611

répondre à tous(1)
P粉674999420

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 :

  • L'encodage des chaînes est généralement indétectable, ce sont des métadonnées qui doivent être suivies séparément.
  • En fait ISO-8859-1, mais attention, c'est le méchant jumeau cp1252 qui remplit les plages d'octets de retenue 8X et 9X avec des symboles supplémentaires, notamment €. latin1Référence 李>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal