none
データ型varcharでの日本語表示 RRS feed

  • 質問

  •  

    英語版のSQLサーバ2005を使用しているのですが、作成したテーブルの varchar のフィールドに日本語を入れて内容を確認すると文字化けを起こしています。

    例えば、
    テーブル名:t_test
    フィールド:
            eng  varchar(50)
            jp   varchar(50)
    というテーブルがある場合、以下のSQL文
      insert into t_test
             (eng, jp)
      values ('english', '英語')
    を実行して、テーブルの内容を確認すると以下のようになります。
     eng     | jp
    ---------+------
     english | ??

    どこかシステムの設定を変更すれば varchar で日本語も扱えるものなのでしょうか。あるいは、日本語版のSQLサーバーを使う必要があるのでしょうか。ご教示よろしくお願い致します。

     

     

    2008年6月5日 11:18

回答

  • 列の定義を変更できない場合は、COLLATEを指定するとうまくいくかもしれません。

     

    例)

    SELECT eng, jp COLLATE JAPANESE_CI_AS

    FROM t_test

     

     

     

    2008年6月7日 8:31

すべての返信

  • > テーブル名:t_test
    > フィールド:
    >         eng  varchar(50)
    >         jp   varchar(50)

    フィールド"jp"の定義を"varchar"ではなく、"nvarchar"に変更できませんか?

    テーブルの定義が変更できるのであれば、これが一番手っ取り早いと思います。

     

    2008年6月6日 7:16
  • 列の定義を変更できない場合は、COLLATEを指定するとうまくいくかもしれません。

     

    例)

    SELECT eng, jp COLLATE JAPANESE_CI_AS

    FROM t_test

     

     

     

    2008年6月7日 8:31
  • nvarchar で試したところうまくいきました。ありがとうございます。

     

    webweb

     

     

    2008年6月17日 10:51
  • こんにちは。フォーラムオペレータ大久保です。

     

    webweb さん、フォーラムのご利用ありがとうございます。

    また、うまくいった との情報も投稿していただき、ありがとうございます!

    フォーラムでは、このような「結果どうなったか」という情報は非常に重要なのです。多くの皆様の参考になりますので…

     

    今回、有効なアドバイスをくださった CatTail さんの投稿に「回答済み」チェックをつけさせていただきました。

    CatTail さん、ありがとうございました!

     

    また何かわからないこと等ありましたら、MSDN フォーラムのことを思い出してくださいね

    2008年6月24日 9:13