none
中国語(繁体字)はサポートについて RRS feed

  • 質問

  • SQLServer2014 Express、2016developerエディション(日本版)で開発しています。
    これらは、中国語(繁体字)はサポートしていないのでしょうか?
    バイナリ (varbinary(max)) に対し、繁体字の文字コードを指定したCSVデータをインサートしようとするとエラーになってしまいます。
    文字コードは「Big5」「Big5-HKSCS」「HKSCS」「Big5-2003」「CNS11643」など、インターネット上で調べられるコードを試したつもりです。

    中国語(簡体字)の場合は「GB18030」でうまくいっています(GBKだと繁体字と同じようにエラーで登録できませんでした)。

    また、もし中国語(繁体字)をサポートしていないのだとしたら、他のバージョンで対応されているのはあるのでしょうか?

    ちなみにですが、データのインサートはjavaのSpringframeworkを使用しています。
    一応、エラーメッセージも記載しておきます。
    2017-08-08 18:36:43,988 ERROR [org.springframework.transaction.support.TransactionSynchronizationUtils] [Job thread:FlowJob: [name=XXXXXXXXX]73] 'org.springframework.transaction.support.TransactionSynchronizationUtils:171' - TransactionSynchronization.afterCompletion threw exception



    Caused by: java.nio.charset.UnmappableCharacterException: Input length = 1
     at java.nio.charset.CoderResult.throwException(CoderResult.java:282)


    よろしくお願いします。

    2017年8月9日 1:19

回答

  • 自己解決いたしました。

    中国語(簡体字)で設定した「GB18030」が、中国語(繁体字)を含んでいたため、同様に「GB18030」を設定することでうまくいきました。

    ありがとうございました。

    • 回答としてマーク 高原k 2017年8月10日 1:33
    2017年8月10日 1:32

すべての返信

  • 直接的な回答でなくて申し訳ありませんが、原因の切り分けの為に、一度他の方法で試して見た方が良いと思います。

    ※SQL Serverの問題なのかSpringframeworkの問題なのか

    また、関係無いとは思いますが照合順序は問題無いですよね?

    2017年8月9日 9:45
  • SQL Serverで受け入れられる暗黙的な変換については説明されています。textやntextからは変換不可、varcharやnvarcharからは明示的な変換が必要となっています。
    つまり、Spring Frameworkが明示的に文字列からバイナリに変換していることになります。

    であれば、このエラーはSpring Frameworkによる問題と考えるのが妥当です。

    2017年8月9日 12:38
  • 自己解決いたしました。

    中国語(簡体字)で設定した「GB18030」が、中国語(繁体字)を含んでいたため、同様に「GB18030」を設定することでうまくいきました。

    ありがとうございました。

    • 回答としてマーク 高原k 2017年8月10日 1:33
    2017年8月10日 1:32