![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
TcpClientでストリームからバイトでhttpデータを取得しましたが、
EUC-JPの文字コードのサイトだけがhtml内に本来入るはずのない数値が沢山現れます。
いっそのことWebBrowserコントロールを使ってサイトにアクセスし、DocumentTextを参照した方が手っ取り早いでしょうか?
バイトから文字列の変換はわかりましたが、文字列から文字列へ文字コードを変換する方法がわからず困っています。ご存知の方教えていただけますか?
以下、EUC-JPの時に数値が混入するサンプルです。
'---------------------------------------------------------------------------------------------------
' httpファイルを読み込む
'---------------------------------------------------------------------------------------------------
Private Sub GetHttp(ByVal host As String, ByVal port As Integer, ByVal cmd As String, ByRef retcode As Integer, ByRef http_data As String)
'TCP/IP接続を行う
Dim client As New TcpClient()
Try
client.Connect(host, port)
'ストリームを取得する
Dim stream As NetworkStream = client.GetStream()
Dim param As String = cmd + " HTTP/1.0" + ControlChars.CrLf+ControlChars.CrLf
Dim buffer() As Byte = System.Text.Encoding.ASCII.GetBytes(param)
stream.Write(buffer, 0, buffer.Length)
Dim sb As New System.Text.StringBuilder()
Dim len As Integer
http_data = ""
Dim bytData() As Byte = New Byte(1048576) {} '1MB
Dim strCharset As String = ""
'すべて受信する
Dim cnt As Integer
For cnt = 1 To 1000
'受信
len = stream.Read(bytData, 0, bytData.Length) 'バッファサイズを与えて、受信サイズを得る
sb.Append(Encoding.GetEncoding("utf-8").GetString(bytData, 0, len)) 'utf-8
If Not stream.DataAvailable Then '受信キューにデータがある場合はTrue
Exit For
End If
Next
'正常に受信できた場合
http_data = sb.ToString
retcode = 0
Catch ex As Exception
retcode = -1
http_data = ""
Finally
client.Close()
End Try
End Sub
'-----
Dim host As String = "ホスト名"
Dim port As Integer = 80
Dim cmd As String = "GET /index.html"
'戻り値
Dim retcode As Integer
Dim http_data As String = ""
Dim charset As String = ""
Try
GetHttp(host, port, cmd, retcode, http_data)
Catch ex As Exception
MessageBox.Show(ex.Message, "エラーです。")
End Try
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
RS232cを用いた送信プログラム
-
Outlookの「受信日時」「件名」...
-
TCP/IP のパケットの分断と結合...
-
winsockを使ったTCP及びUDP通信...
-
MTUで!!
-
ASP.NET C#でPOST受信
-
msgrcv( )で領域破壊?
-
UDP受信時の通信異常検知について
-
Outlookの「受信日時」「送信者...
-
TCPでパケットロス?
-
DHCPOFFERの受信について
-
パケット受信 recvfrom( )につ...
-
TcpClientとWebbrowser
-
パソコンに詳しい方教えて下さ...
-
バッチファイルでディレクトリ...
-
Windows上のファイル操作の履歴...
-
エクセル 共有ファイル 削除
-
CSVファイルのマッピング処理の...
-
cronからtarで圧縮しようとする...
-
ipadで社内ネットワークに接続
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Outlookの「受信日時」「件名」...
-
シリアル通信時のデータ受信方法
-
TCP/IP のパケットの分断と結合...
-
UDP受信時の通信異常検知について
-
Outlookの「受信日時」「送信者...
-
RS232cを用いた送信プログラム
-
DHCPOFFERの受信について
-
Excxel vba でYahoo API で住所...
-
CRC-CCITTに関しての仕様とサン...
-
recv関数の戻り値について
-
遅延確認応答について教えてく...
-
VC++ 2010 メッセージが文字化...
-
ネットワークでの受信バイト数
-
「TCPは全二重可能」の意味
-
VB2010で、シリアル通信の方法...
-
TCPでパケットロス?
-
赤外線センサーについて
-
C#にてCTI。RS232Cの受信と送信...
-
PC98で232c送信winndowで受信で...
-
パケット受信 recvfrom( )につ...
おすすめ情報