|
▼すいか さん:
一応こちらも試してもらえますか?
新規userformにcommandbuttonを1個、textboxを4個配置して下さい。
以下をコピペ、コマンドボタンをクリック。
Shift-JISでもunicodeでもtextbox1,textbox2の両方に正しく表示されます。
utf-8,7ではtextbox3,textbox4のどちらかにに正しく表示されます。
2つずつ正しく表示されますが、どちらかは判断できませんが、
これではないというのが判断できます。
・・・・文字コード判定はかなり難しいので簡易な方法でお茶を濁しました。^ ^;
後はkanabun さんのコードで出力されたものと併せて考えれば
だいたいの判断できるのではないかと思います。
取り敢えず、win7 XL2007で動作はしました。
Option Explicit
Private Sub CommandButton1_Click()
Call SearchChar
End Sub
Private Sub SearchChar()
Const c1 As String = "Shift_JIS" 'Shift-JIS
Const c2 As String = "ISO-2022-JP" 'UNICODE
Const c3 As String = "EUC-JP" 'EUC-JP
Const c4 As String = "UTF-8" 'UTF-8
Const c5 As String = "UTF-7" 'UTF-7
Dim sPath As String
sPath = Application.GetOpenFilename("Text Files (*.txt), *.txt", 0, "文字コードテスト")
Me.TextBox1.Text = SearchCharCode(sPath, c1) 'Shift-JIS
Me.TextBox2.Text = SearchCharCode(sPath, c2) 'UNICODE
Me.TextBox3.Text = SearchCharCode(sPath, c3) 'EUC-JP
Me.TextBox4.Text = SearchCharCode(sPath, c4) 'UTF-8
Me.TextBox5.Text = SearchCharCode(sPath, c5) 'UTF-7
End Sub
Private Function SearchCharCode(pPath As String, pChar As String) As String
Dim ad As Object
Dim buf As String
Set ad = CreateObject("ADODB.Stream")
With ad
.Charset = pChar
.Open
.LoadFromFile pPath
buf = .ReadText(-2)
.Close
End With
Set ad = Nothing
SearchCharCode = buf
End Function
|
|