Unicodeで書かれたトルコ語をシステムに取り込むと、落ちるという現象が発生。某ミドルウェアがShift-JISでXMLを構築するというものであるので、そこでUnicodeを扱うことができなくなり、落ちることがわかりました。
これを調査して、以下のことが分かりました。
- Excelのセルに値を入れると、内部ではUnicodeで統一されている?
- ADOを用いてExcelのセル値をDBに更新させようとするとShift-JISとして登録しようとするような動き。Shift-JISにマッピングできない文字があると、なんとフリーズする。
- SQLServerのテーブル内のフィールドにおいて、型をntext,nvarcharにすると、Unicodeが格納できる
- ADOでADO.Commandに登録・更新先がntextとかnvarcharであることを定義すれば、フリーズせずにUnicode文字を登録・更新できる
文字コード体系をUnicodeで全部統一してくれたら、こんなことにならないんでしょうが。ハンユニフィケーションに反発がある限りは統一なんて無理無理なんでしょうね。