StrConvでユニコードデータを得たいのですが
詰まっております。
例)
Dim strData As String
strData = StrConv (StrConv ("ドキュメント" ,vbUnicode) ,vbFromUnicode)
実行結果 strData は "ドキ???ト"となってしまいます。
以下の関数で得たデータをテキストに保存し、バイナリエディタ
で覗いてみてもよくわからなくて困っています。
Private Function Uni(strTest As String) As String
Dim ss As String
Dim bytArray() As Byte
Dim intcount As Integer
bytArray = strTest
For intcount = 0 To UBound(bytArray)
ss = ss & Chr(bytArray(intcount))
Next
Uni = ss
Dim lngFileNo As Long
lngFileNo = FreeFile
Open "C:\Documents and Settings\Owner\デスクトップ\Test.txt" For Output As #lngFileNo
Print #lngFileNo, ss
Close #lngFileNo
End Function
どうにか"ドキュメント"の文字列を(加工して?)
ユニコードデータに変換して、再度シフトJISに変換しても
"ドキュメント"となるような方法がありますでしょうか?
VB6 WindowsXPです。よろしくお願いします。
VB6では文字列はUNICODEで扱っています。
bytArrayがシフトJISであるならば、
Uni = StrConv(bytArray, vbUnicode)
で良いと思います。
あれ、ちょっと変な事言いました。。
Dim b() As Byte
Dim i As Long
Dim ss As String
ss = "ドキュメント"
b = StrConv(ss, vbFromUnicode)
Dim f As Long
f = FreeFile
Open "C:\Test1.txt" For Binary As #f
Put #f, 1, b
Close #f
b = ss
f = FreeFile
Open "C:\Test2.txt" For Binary As #f
Put #f, 1, b
Close #f
Test1がシフトJIS、Test2がUNICODEとなるはずです。
testさん、ありがとうございます。
ややこしくこんがらがった(頭の中の)糸がひとつ
ほどけたみたいで、なんだかもう少しで理解できそうです。
目的はまだ達成できませんが、自分がなにがわかってない
かさえ、うまく説明できません(笑)
とりあえず解決とさせていただきます。
また、試行錯誤してわからないときによろしくお願いします。