recvでの文字化けこんにちはゲストさん。recvでの文字化けWinsockによりサーバ名、ポート番号、URLを指定するとそのソースファイルをテキスト出力するプログラミングを作成しています。文字エンコーディングがShift_JISであるページは日本語も正しく表示させることができたのですが、それ以外の文字エンコーディング(EUC-JP、Unicode(UTF-8))のページでは日本語が文字化けしてしまいうまく出力できません。デバックでrecv関数で文字を取得した際の変数szStrRcvを確認したところ、取得した時点で既に文字化けしているようです。以下に問題部のソースを示します。{perror("recvエラーです\n");break;}}closesocket(s);WSACleanup();fclose(fp);何か対策がありましたらご教授をお願いいたします。//HTMLソースを.txtに書き込む>//////////この時点でszStrRcvには日本語が文字化けした内容が格納されている///////////////文字化けも何も、EUCやUTF-8でエンコードされたページは「EUCやUTF-8のまま」送られて来るので、そのまま表示しても文字化けしてて当たり前。表示したいなら、何のコードで送られて来たか見て、自分で「EUC⇒Shift_JIS」や「UTF-8⇒Shift_JIS」に変換してあげないとならない。szStrRcv);はやってはダメ。1回の受信は「多バイト文字の、文字の途中」で途切れる可能性があるので、勝手に改行を足してはいけない。...」が来る事もある。9C」となって、漢字の「亜」の途中に改行コードを入れてしまう。これでは「文字化けして当たり前」だろう。9F」って感じで、文字化けしてる筈。今まで文字化けしてたのに気が付かなかっただけで。回答(3)ANo.3chie65535もう1つ。Mark(BOM)」が無いといけない。BF」がある事になっている。ファイルの先頭にこの3バイトが無いと、メモ帳で開いた瞬間にUTF-8とは認識されず「文字がグチャグチャ」に文字化ける。メモ帳はEUCに対応してないので、EUCは必ず文字化ける。11:32:44お礼わかりました。貴方様の意見を参考にもう少し自分で調べてみます。現段階でなんとか文字列をANSIに変換してtxtに保存できるようになりました。ご教授ありがとうございました。(0)通報するANo.1i-kujou1.文字化けはどこで確認しましたか?単純にEUCやUTF-8を認識できないプログラムで見ているだけではないですか?VisualStudioのウォッチ画面などではShift-JIS以外の文字列を表示することはできないはずです。2.全てのデータを受信していますか?recvでは要求ファイルの全サイズを一度に読み込むわけではありません。通信環境により、例えば10kのファイルだったとしても1バイトしか読み込まない可能性もありえます。以下のようにやるのが定番だと思います。ネットワークからデータを読み込む。10:48:15お礼わかりました。貴方様の意見を参考にもう少し自分で調べてみます。ご教授ありがとうございました。VC++2010でHTTP通信のサンプルプログラムを走らせてみたのですが、どうも上手く行きません。ソ...winsockと、gmail。ボードゲームで対戦用にとTCP通信プログラムを導入したいのですがどうにもうまくいきません。現在Winsockを用いた簡単なパケット送受信のソフトを作成しています。windows版のC++のソケット通信プログラムです。クライエントプログラムを起動もしていないのに、アクセスがありましたと表示されます。winsockを使ってプログラミングしています。