2017-03-06 2 views
0

私は何年も後に復活した古いサーバに対処しようとしています。問題は、DBが奇妙な状態にあることです。MySQL - charset windows-1251としてエンコードされたデータがサーバに表示されない

ウェブサイトは、charset = "windows-1251"でDBから情報を読み取ります。 phpMyAdminに表示されているテーブル全体とフィールドには照合順序「cp-1251」がありますが、これはwindows = 1251と同じです。テキストがラテン語で書かれている場合、すべてが正しく表示されますが、ブルガリア語でテキストを書くとうまくいきません。任意のアイデアはどのようにDBの問題を修正するには?私はphpMyAdmin &のウェブサイトの管理パネルにアクセスできます。

私は文字セット&の照合をutf-8に切り替えることを考えていましたが、 "?"どこにでも。また、同様のWebサイトを検索し、同じフィールドにcharset = windows-1251を使用していることがわかりました。これは、テーブルのデータが正しくないと思うようになります。

答えて

0

MySQLのCHARACTER SET utf8またはcp1251を使用してください。

  • 列/テーブル(CHARACTER SET ...
  • のHTMLメタ(PHPでset_charaset()を参照してください)あなたは、あなたのクライアントに

    • バイト全体でその文字セットへ
    • 接続を切り替える必要があります。あなたがテーブルにそれを保存として

    疑問符のさらなる議論については、特にTrouble with utf8 characters; what I see is not what I stored

    を参照して、データが失われました。

  • +0

    ありがとうございます!データベースをutf-8に変換したところ、新しい情報がすべて表示されます。今は古いデータがまだcp1251にあり、変換する必要があるので、ダンプしてutf-8としてインポートすることでこれを行うことができることが分かりました。問題は、コントロールパネルをホストしているウェブにしかアクセスできず、自分のコンピュータに何も設定していないことです。このため、私はこれをどうやって行うのか分かりません。私を助けてくれますか? –

    +0

    あなたはどのような状況にありますか:http://mysql.rjweb.org/doc.php/charcoll#fixes_for_various_cases(注意:その書き込みは「latin1、wanting utf8」を対象としています;あなたは「cp1251、utf8が必要」を参照してください)。 –

    関連する問題