正しい使い方について質問があります
$mysqli->set_charset()
。私は自分のウェブサイトでこの機能を何年も使っていません。今、接続スクリプトを書き直していて、$mysqli->set_charset()
が正しく適用されるようにしたいと考えています。現在、サイトはまだ "latin1" に基づいています (ただし、すぐに UTF-8 (utf8mb4) に切り替える予定です。)
私のサーバー (私が管理している) 上の MySQLi は、長年 latin1 構成を使用しています。これを今追加しても問題ないと思います $mysqli->set_charset("latin1")
?
MySQLi がデフォルトで utf8mb4 として設定されている場合、$mysqli->set_charset()
関数を使用しないと、Web サイトに奇妙なエンコードされた文字が表示されますか?
自分の仮説を確認したいです。
mysqli::set_charset()
接続の 文字セットを設定します。つまり、「この接続経由で送信するすべての文字列は this > エンコーディングを使用します。私もコーディングを再開したいです。」これを、PHP 側で使用しているエンコーディングと一致させる必要があります。つまり、現在の設定が間違っている場合でも、現在の値を変更するとデータが破損する可能性があります。これは、データベースからデータベースへの転送中に破損したデータが、設定が一貫している限り同じように破損する場合があるためです。
変更を加える前に、現在使用されているエンコーディングと、データベース内のデータが破損していないかどうかを確認する必要があります。そこから、すべてのエンコードが一致していること、データがすべてのステップで正しくエンコードおよび処理されていること、および既存のデータが修復されていることを確認するためのパスをグラフ化できます。
いつものように、メイン投稿を参照してください: UTF-8 全体を通して 一个>
その他の考え: