こんにちは。
現在、Visual Studio 2005 C#を使っています。
ネットワーク経由で機器の情報を取得しようとしているのですが、文字化けが起きてしまいました。
調べてみると'c0','b2','d1'と帰ってきていて、これらはS-jis半角カナの'タ','イ',’ム’を表しているようです。
少し省略していますが以下のような手順で確認しています
private void buttonStart_Click(object sender, EventArgs e)
{
TcpClient client =
new TcpClient(textBoxIP.Text,int.ParstextBoxPort.Text));
NetworkStream netStream = client.GetStream();
StreamReader sr = new StreamReader(netStream);
StreamWriter sw = new StreamWriter(netStream);
sw.AutoFlush = true;
sw.WriteLine("TestCommand");
string s = sr.ReadLine();//ここで文字化け
}
StreamReader,StreamWriterの設定でEncoding指定が出来るようですが、sjisは無かったように思いました。
(defaultはUTF-8になっているようですので文字化けしたようです。)
どのようにすれば、sjisで文字列を取得できるでしょうか?
No.1ベストアンサー
- 回答日時:
>sjisは無かったように思いました。
Shift_JISはちゃんとあると思うけど?
http://msdn.microsoft.com/en-us/library/system.t …
> 932 shift_jis Japanese (Shift-JIS)
http://msdn.microsoft.com/en-us/library/wzsz3bk3 …
実装するのが面倒くさかったのでTCPClient使わず
byte配列をMemoryStreamに書き込んでみたコード:
using System;
namespace Q5013966
{
public class Q5013966
{
public static void Main(){
System.IO.MemoryStream s = new System.IO.MemoryStream();
s.Write(new byte[]{0xc0,0xb2,0xd1},0,3);
s.Seek(0,System.IO.SeekOrigin.Begin);
System.IO.StreamReader sr = new System.IO.StreamReader(s,System.Text.Encoding.GetEncoding(932));
System.Console.WriteLine(sr.ReadLine());
System.Console.ReadKey(true);
System.Console.WriteLine(System.Text.Encoding.GetEncoding(932).GetString(new byte[]{0xc0,0xb2,0xd1}));
}
}
}
>System.IO.StreamReader sr = new System.IO.StreamReader(s,System.Text.Encoding.GetEncoding(932));
で設定できるんですね…。
Encoding.で設定できるプロパティが
Unicode,UTF7,UTF8,UTF32しか見当たらないので設定できないのかなと思ってしまいました。
無事解決しました。
参照先も確認させていただきます。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタンの複数割り当てについて
-
c# スレッド間でのデータの共有
-
文字列の置換
-
落下する正方形を左右に移動す...
-
BOOL値を逆にしたい
-
Java配列でNullPointerExceptio...
-
java キーボード入力された値の...
-
JAVA EOFの検出 (条件文で「...
-
System.err. printlnとSystem.o...
-
iterateで受け取った値を処理に...
-
EXCEL VBA で、0から?1から?
-
コマンドライン引数の例外処理...
-
Java配列の問題を教えてくださ...
-
SwingでJtableのヘッダ行が表示...
-
Eclipseのコンソールを常に表示...
-
cloneメソッドについて (java)
-
ループ処理の際、最後だけ","を...
-
[JAVA]try 内の変数を外で!?
-
変数を動的に作るには?
-
C言語 重複しない4ケタの乱数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
C#で、あるクラスのメンバーす...
-
C#でのWNetAddConnection3の使...
-
Junitテストでvoid戻り値メッソ...
-
ボタンの複数割り当てについて
-
C# DataGridView列カスタマイズ
-
C# WinForm のDataGridView Cel...
-
C# visibleプロパティをfalseに...
-
[C#.net]スレッド化された別フ...
-
C# 矢印キーの取得
-
unityでのC++エラーの原因がわ...
-
C#から、C++で作成したdll内の...
-
コンボボックスを使う時の警告
-
JavaFXでの表内のチェックボッ...
-
C#で別のFormへ複数の値を返そ...
-
vc++ 2005 Pictureboxの透過処理
-
プログラミング(Java)じゃん...
-
C#でキーイベントが発生しない...
-
正規表現
-
C# MouseHoverを何度も呼ぶには
おすすめ情報