掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
VB6.0 + MySQL 4.1.22 での文字化け (ID:100637)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
MySQLは良く分からないので SQL Serverでテストしました 書込みは出来ているでしょうから MySQLからのReadのみ F1のフィールドタイプはバイナリ Dim strS As String Dim bytS() As Byte With RecordSet Do While Not .EOF bytS() = !F1 ’バイナリフィールドからバイト配列へ strS = Utf8Decode(bytS()) ' 変換 .MoveNext Loop .Close End With '(Bas) Public Declare Function WideCharToMultiByte Lib "kernel32" _ (ByVal CodePage As Long, _ ByVal dwFlags As Long, _ ByVal lpWideCharStr As Long, _ ByVal cchWideChar As Long, _ ByRef lpMultiByteStr As Any, _ ByVal cchMultiByte As Long, _ ByVal lpDefaultChar As String, _ ByVal lpUsedDefaultChar As Long) As Long Public Declare Function MultiByteToWideChar Lib "kernel32" _ (ByVal CodePage As Long, _ ByVal dwFlags As Long, _ ByRef lpMultiByteStr As Any, _ ByVal cchMultiByte As Long, _ ByVal lpWideCharStr As Long, _ ByVal cchWideChar As Long) As Long Public Const CP_UTF8 = 65001 Public Function Utf8Decode(ByRef bytUtf8() As Byte) As String Dim lngUtf8Size As Long Dim strBuffer As String Dim lngBufferSize As Long Dim lngResult As Long On Error GoTo EndFunction lngUtf8Size = UBound(bytUtf8) + 1 lngBufferSize = lngUtf8Size * 2 strBuffer = String$(lngBufferSize, vbNullChar) 'デコード文字列を格納するバッファを確保 lngResult = MultiByteToWideChar _ (CP_UTF8, _ 0, _ bytUtf8(0), _ lngUtf8Size, _ StrPtr(strBuffer), _ lngBufferSize) 'MultiByteToWideChar で UTF-8 → Unicode 変換 If lngResult Then 'MultiByteToWideChar が成功した場合 Utf8Decode = Left$(strBuffer, lngResult) End If Exit Function EndFunction: ' Error 処理 End Function
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.