掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ADOで取得した結果が文字化けする (ID:122190)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> 例)"東京"→"譚ア莠ャ"に化けています。 データが化ける、という点について話をしていますので、 文字列としてだけではなく、バイナリ形式として どのように化けているのかまで、突っ込んで調べてみてください。 たとえば、UTF-8形式の「東京」(E6 9D B1 E4 BA AC)を取得したときに、 VB側ではどのようなバイナリとして取得されますか? Byte型の配列に受け取ってみて、その内容を確認してみてください。 もし、そのまま、E6 9D B1 E4 BA AC のまま送られてきているのであれば、 Streamオブジェクトを使うことで、UCS-2の「東京」に復元できます。 しかし、5A 8B 71 FF A0 83 6C などとして送られてきているのであれば、 既にデータが破損していますので、完全には復元できません。 '======================= Dim B() As Byte, S As String 'UTF-8形式の「東京」のバイナリ ReDim B(5) B(0) = &HE6 B(1) = &H9D B(2) = &HB1 B(3) = &HE4 B(4) = &HBA B(5) = &HAC 'この化け方なら、復元可能です。 '表示上は化けて見えますが、バイナリ自体は変化していません。 S = StrConv(B, 0, 1041) MsgBox B, , "OK" 'これらの化け方をしているなら、復元は不可能です。 'ある程度の復元はできますが、文字コードの変換時に、 'データの一部が欠損/破壊される事があるため、 '完全には元に戻りません。 S = StrConv(B, vbUnicode, 1041) MsgBox S, , "NG" S = StrConv(B, vbFromUnicode, 1041) MsgBox S, , "NG"
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.