|
カテゴリ:コンピュータ
VB6で、ODBCを使いMySQLのUTF-8の文字列にアクセスすると文字化けすることの対策
接続文字列に STMT=SET CHARACTER SET cp932; を加えるというのが前回の結論でしたが、やはり、これが、ベストではないものの、日本語を扱うだけなら、ベターな方法だという結論に達しました。 この方法では、UTF-8、SJIS、UNICODEと変換され、余計な変換が含まれることが不満です。この3つのコードが、双方向に完璧に変換されるなら、気になりませんが、不完全である場合、一部の文字で文字化けする恐れがあることが不安なのです。 また、SJISを使う以上、日本語しか扱えないという問題もあります。 VBの前の段階であるODBCまでは、UTF-8で持ってくることができますが、VBの、どの段階かで、データがsjisと解釈されて、UCS-2に変換されてしまいます。(ということは外国のWindowsなら、その国のデフォルトの文字コードから、UCS-2に変換されるのかも) この変換を行わせないようにできればベストですが、調べても、わかりません。 少なくとも、ADOのメソッドやプロパティに、それらしい関係のものは見つかりませんでした。 解決のきっかけになりそうなのは、文字列ではなく、バイト配列として扱うこと。ADODB.Commandを使い、文字列をadBinaryとして扱えば、解決するのかもしれない? フィールドを、バイト配列で受け取るだけでいいかも? と、いろいろ考えましたが、今のところ、日本語しか扱わないので、このままで良いと判断しました。 参考HP UTF-8対応Webアプリケーションの構築: 第3回(VB6.0) お気に入りの記事を「いいね!」で応援しよう
Last updated
2008.01.14 00:49:04
コメント(0) | コメントを書く
[コンピュータ] カテゴリの最新記事
|