データベース ストレージのデコード文字エンコーディングの問題
古い Web サイトのデータを新しいスクリプトに移行するときに、不可解な状況が発生します。元々古いスクリプトで正しくレンダリングされていた保存された文字が、新しいスクリプトでは歪んで表示されます。調査の結果、文字が異常なエンコーディングで保存されていることが判明しました。
古いスクリプトは TUBADBENGINE というデータベース エンジンを使用していますが、これには特別な特徴はありません。ただし、古いスクリプトを使用してペルシア語文字を含むデータを挿入すると、それらは奇妙な文字としてデータベースに保存されます。
一方、SQL を使用してデータをデータベースに直接入力すると、正しい文字が保持されます。ただし、新しいスクリプトを使用してこのデータを取得しようとすると、文字化けが発生します。
回答で明らかになったように、原因はデータベース接続に使用されている文字エンコーディングです。この場合、データベース接続は latin1 に設定されていますが、これはペルシア語文字には不適切な選択です。その結果、データベースに保存するときに文字が誤って変換されました。
この問題を解決するには、データベース内のデータを正しい文字エンコーディングに変換する必要があります。回答で提供されている考えられる解決策の 1 つは次のとおりです:
SELECT CONVERT(BINARY CONVERT(field_name USING latin1) USING utf8) FROM table_name
このクエリを使用すると、正しい文字エンコーディングを使用してデータを取得できます。 。次に、この結果を UPDATE ステートメントとして使用して、データベース内のデータを永続的に修正できます。
データが適切にエンコードされると、新しいスクリプトはそれを正しく取得して表示できるようになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3