複数言語環境でのトラブルシューティング

なぜ、データが表示されるべき個所に小さな白い四角が表示されるのか

このドキュメントでは、Sybase Central または Interactive SQL で四角や記号として表示される文字を正しく表示させる方法について説明します。
このドキュメントに記載の情報は、SQL Anywhere バージョン 10.x に適用します。

症状

Sybase Central および Interactive SQL で SQL Anywhere データベースのデータを表示させると、文字が四角、疑問符、またはその他の予期しない記号として表示されることがあります。これは多くの場合、フォントが原因であり、簡単に修復できる問題です。まれに、表示された記号が壊れたデータを示すこともあります。以下に、四角が表示されたスクリーンショットを示します。

以下は、本来の表示を示すスクリーンショットです。

よくある問題

この問題が、単にフォントが原因で発生している場合 (大半のケース)、以下の手順に従って問題を修正できます。問題が明確ではない場合にも、これらの手順を実行してください。手順を実行しても、データベースのデータに影響することはなく、さらに実際にフォントが原因であった場合には時間の節約にもつながります。

原因

サポートしていない文字 (使用するオペレーティング・システムのデフォルト・フォントに存在しない文字) によるテキストを含む SQL Anywhere データベースに接続すると、これらの文字が四角、疑問符、またはその他の予期しない記号として表示されることがあります。たとえば、オペレーティング・システムとして英語版のWindows XP を使用していると、日本語文字はサポートされません。同様に、中国語版の Windows XPを使用している場合は、アラビア文字はサポートされません。

Windows で実行している Sybase Central および Interactive SQL は、デスクトップ・アイコンとして使用されるフォントを使用します。たとえば、英語版の Windows を実行していると、デスクトップ・アイコンのデ
フォルト・フォントは Tahoma です。このフォントでは、日本語や中国語などの文字表示はサポートされません。デフォルト・フォントが Tahoma に設定された Sybase Central および Interactive SQL で、日本
語や中国語の文字を表示しようとすると、四角のような記号として表示されます。Sybase Central およびInteractive SQL では、選択したフォントに存在しない文字をこのように表示します。Sybase Central および Interactive SQL でサポートされない文字を表示するには、それらの文字がサポートされるデスクトップ・アイコン・フォントに変更する必要があります。

Windows での対処方法

ここで示す方法でフォントを変更すると、Sybase Central および Interactive SQL 全体にわたり変更が適用されます。

  1. Sybase Central および Interactive SQL を終了します。
  2. Windows デスクトップで右クリックして、[プロパティ] を選択します。
  3. [画面のプロパティ] ダイアログで、[デザイン] タブをクリックします。
  4. [詳細設定] ボタンをクリックします。
  5. [デザインの詳細] ダイアログで、[指定する部分] ドロップダウン・リストで [アイコン] を選択します。選択されたフォントが [フォント] ドロップダウン・リストに表示されます。Arial Unicode MS(Microsoft Office で提供される) などの Unicode フォントを選択するか、またはデータを表示できるフォント名がわかる場合はそのフォントを選択します。
  6. [デザインの詳細] ダイアログで [OK] をクリックします。[画面のプロパティ] ダイアログで [OK]をクリックします。
  7. Sybase Central および Interactive SQL を起動して、再度クエリを実行してください。

Linux での対処方法

Linux でフォントによる問題を修正するには、表示する文字が含まれる TrueType フォントをインストールします。Interactive SQL および SQL Anywhere で提供されるその他のグラフィカル管理ツールで使用できるように、さまざまな言語の文字をサポートする Unicode フォントをダウンロードおよびインストールする手順を以下に示します。

  1. Sybase Central および Interactive SQL を終了します。
  2. Unicode フォントを$SQLANY10/jre150/lib/fonts/fallback ディレクトリにコピーします。

    o たとえば、Bitstream Cyberbit Unicode などの Unicode フォントを以下からダウンロードします。
    ftp://ftp.netscape.com/pub/communicator/extras/fonts/windows/Cyberbit.ZIP .
    o Cyberbit.ZIP を一時ディレクトリに解凍します。
    o ディレクトリ $SQLANY10/jre150/lib/fonts/fallback を作成します。
    o Cyberbit.ttf を $SQLANY10/jre150/lib/fonts/fallback ディレクトリにコピーします。

  3. Sybase Central および Interactive SQL を起動して、再度クエリを実行してください。

SQL Anywhere での特殊な対処方法

Sybase Central および Interactive SQL で、結果を表示するフォントの設定のみを変更できます。

  • Interactive SQL の場合: [ツール] ‐ [オプション] でリストの [結果] を選択して、右側のペインの[カスタム・フォント] をクリックして Unicode フォントを選択します。ここで設定したフォントは[結果] テーブルのみに影響します。[SQL 文] フィールドで使用されるフォントは変更されません。
  • Sybase Central の場合: [ツール] – [SQL Anywhere 10] – [ユーザ設定] を開いて[データ・テーブル] タブを選択します。[カスタム] ラジオ・オプションを選択し、[参照] をクリックしてUnicode フォントを選択します。

上記を実行しても四角が表示される場合

データ自体に原因がある場合、Sybase Central および Interactive SQL で表示される四角はデータ内に不正な文字があることを示します。これは、データベースにサポートされない文字を挿入しようとし、損失を伴う変換が実行されたときに発生することがあります。たとえば、英語文字セットのデータベースに日本語文字を挿入しようとした場合です。

データベースのデータに代替文字が含まれる場合、新しいデータベースを作成してデータをロードする場合を除き、元の文字に修復する方法はありません。新しくデータベースを作成する場合は、Unicode データベース文字セットを使用するか、影響を受けるカラムを NCHAR として宣言します。詳細については、SQLAnywhere マニュアルの「国際言語と文字セット」の章を参照してください。

(http://www.ianywhere.com/developer/product_manuals/sqlanywhere/1001/ja/html/dbdaja10/da-collat.html).