Debian の MySQL コンソール上の UTF8 ヘブライ語 (Windows の Putty 経由)

Debian の MySQL コンソール上の UTF8 ヘブライ語 (Windows の Putty 経由)

私は linode.com でホストされている Debian Linux 上で SQL サーバーを実行していますが、一部のデータにはヘブライ文字が含まれています。

Windows 7 で putty ssh 経由でサーバーに接続しています。SQL 管理コンソール (mysql) を実行して選択クエリを実行すると、すべてのヘブライ文字が「?」として表示されます。

どこに問題があるのか​​さえわかりませんが、ヘブライ語が失われているのは、mysql コンソールか putty のどちらかだと思います。

データ自体は問題ありません (Web ページ経由でアクセスしても問題なく表示されるため、このことはわかります)。

このシナリオでヘブライ語を有効にするにはどうすればいいか、何かアイデアはありますか?

ありがとう。

答え1

文字エンコーディングは少し変化しますが、データ (結局のところ、すべてバイナリです) も変化します。

まず、データベースのエンコーディングとテーブルの個々のエンコーディングを確認する必要があります。エンコーディングは内部ストレージを参照します。良い例としては、ISO-8859-1データベースが のみを期待するようにを格納しているISO-8859-1が、データの一部がヘブライ語の場合、これらの文字validは に含まれていない、などが挙げられISO-8859-1ます。ただし、データの入力と取得を行うクライアントがISO-8859-8(ヘブライ語) を使用している場合は、ほとんどの場合、正常に機能しているように見えます。

こここのトピックに関する MySQL からのガイドです。

可能な場合は UTF-8 を使用することをお勧めします。理由はいくつかありますが、データベースのエンコードを盲目的に変更しないでください。これはデータを再エンコードするのではなく、単に MySQL に UTF8 のように扱うように通知するだけです。(ソースが ISO-8859-1 または ISO-8859-8 の場合、データが破損します。)こここれも文字エンコードに関する入門書なので、一度目を通しておくとよいでしょう。「ソフトウェア エンジニアが Unicode について知っておくべき最低限のこと」

さらに、ターミナル (bash セッション)、ターミナル エミュレーター (putty)、および db コンソール (mysql) はすべて、どのエンコードを扱っているかを認識する必要があります。UTF-8 を指定してから、UTF-8 データで作業するのが最善です。

関連情報