昨日、こちらで質問したhttpリクエストによる全件取得はおかげさまで実行できたのですが、対象がSHIFT-JISでエンコードされていて、このままでは使えません。
そこで、ググってみると以下のような文字コード変換関数例が見つかりうまくコード変換できました。
しかし、ここが良く分かりません
convTextEncoding = Mid(convText, 3, Len(convText))
なぜ、3桁目から切り取るのでしょう。これを外すとまた文字化けします。
また、エラー時の
convTextEncoding = StrConv(text, vbUnicode, 1041)
も良く分かりません。
最後に、処理の順序についてですが、通常開いて、読み込んで、書き込むイメージでおりましたが、こちらは
.Charset = toCharaset
.WriteText text
で書いてから
convText = .ReadText()
読み込んでいます。
重要なデータなので取りこぼすことはできません。アドバイスといいますか解説お願いいたします。
引用元はこちらです。
' 概要 ' 引数で渡された text の文字コードを変換する関数 ' 引数 ' text : 変換前の文字列 ' fromCharaset : 変換前の文字コード ' toCharaset : 変換後の文字コード(default : unicode) ' 戻り値 ' 変換後の文字列 ' Private Function convTextEncoding(ByVal text, ByVal fromCharaset As String, Optional ByVal toCharaset As String = "unicode") Dim convText As String With CreateObject("ADODB.Stream") .Open .Type = adTypeText .Charset = toCharaset .WriteText text .Position = 0 .Type = adTypeText .Charset = fromCharaset On Error GoTo myLabel convText = .ReadText() convTextEncoding = Mid(convText, 3, Len(convText)) On Error GoTo 0 End With Exit Function myLabel: convTextEncoding = StrConv(text, vbUnicode, 1041) End Function

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/23 07:17
2017/12/25 01:20