C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

出力ウインドウの文字化け

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■88513 / inTopicNo.1)  出力ウインドウの文字化け
  
□投稿者/ まっさん (1回)-(2018/09/05(Wed) 11:02:07)

分類:[VB.NET/VB2005 以降] 

Visual Studioの設定について、教えてください。
Visual Basic 2010 Expressを利用しています。

例えば、以下のようなコードで出力ウインドウに出力した時、
文字化けしてしまいます。(「&#9251;」が「?」表示になる)
Console.WriteLine(ChrW(&H2423))

出力ウインドウで文字化けしないような設定はどこかで、できるのでしょうか?
引用返信 編集キー/
■88514 / inTopicNo.2)  Re[1]: 出力ウインドウの文字化け
□投稿者/ まっさん (2回)-(2018/09/05(Wed) 11:07:29)
No88513 (まっさん さん) に返信
あれ、これも文字化けした。
上の&#9251;はよく空白を表す時に使う、下につくアンダーバーに似たやつです。
引用返信 編集キー/
■88515 / inTopicNo.3)  Re[2]: 出力ウインドウの文字化け
□投稿者/ Hongliang (688回)-(2018/09/05(Wed) 11:18:01)
Windowsアプリケーションで出力ウィンドウに出力したいのなら、Console.WriteLineではなくTrace.WriteLineあるいはDebug.Printなどを使用しましょう。
引用返信 編集キー/
■88516 / inTopicNo.4)  Re[1]: 出力ウインドウの文字化け
□投稿者/ 魔界の仮面弁士 (1812回)-(2018/09/05(Wed) 11:21:47)
No88513 (まっさん さん) に返信
> 例えば、以下のようなコードで出力ウインドウに出力した時、
> 文字化けしてしまいます。(「&#9251;」が「?」表示になる)
> Console.WriteLine(ChrW(&H2423))

Open Box 記号(U+2423) は Shift_JIS に無い文字ですので、
Unicode コンソールで無いと文字化けします。


> 出力ウインドウで文字化けしないような設定はどこかで、できるのでしょうか?

Console.OutputEncoding = System.Text.Encoding.Unicode
とか。(場合によっては InputEncoding も)
引用返信 編集キー/
■88518 / inTopicNo.5)  Re[3]: 出力ウインドウの文字化け
□投稿者/ まっさん (3回)-(2018/09/05(Wed) 11:36:33)
No88515 (Hongliang さん) に返信
> Windowsアプリケーションで出力ウィンドウに出力したいのなら、Console.WriteLineではなくTrace.WriteLineあるいはDebug.Printなどを使用

ありがとうございます。理屈はまったく解りませんが、Trace.WriteLine、Debug.Print両方共、ちゃんと出力されました。
引用返信 編集キー/
■88519 / inTopicNo.6)  Re[3]: 出力ウインドウの文字化け
□投稿者/ 魔界の仮面弁士 (1813回)-(2018/09/05(Wed) 11:38:50)
No88515 (Hongliang さん) に返信
> Windowsアプリケーションで出力ウィンドウに出力したいのなら、

あー。なるほど。
「出力ウィンドウ」と表現しているということは、
コンソール アプリケーションではなく
Windows アプリケーションの可能性がありますね。

Windows アプリケーションの場合だと、Console.OutputEncoding では対応できません。


> Console.WriteLineではなくTrace.WriteLineあるいはDebug.Printなどを使用しましょう。

ちなみに Trace や Debug を使った場合は、「出力ウィンドウ」ではなく
「イミディエイト ウィンドウ」に出力される可能性があります。

どちらに出力されるかは、[ツール]-[オプション] のダイアログを開き、
左ツリーの[デバッグ]-[全般] を選択して、
右エリアの『出力ウィンドウの文字をすべてイミディエイト ウィンドウにリダイレクトする』
のチェックボックスで切り替えられます。

左ツリーに[デバッグ]のエントリが見当たらない場合は、
「全ての設定を表示」のチェックボックスで表示されます。

※上記設定は VS2010 Ultimate の場合です。2010 Express でも同じかは未確認。
引用返信 編集キー/
■88520 / inTopicNo.7)  Re[2]: 出力ウインドウの文字化け
□投稿者/ まっさん (4回)-(2018/09/05(Wed) 11:39:33)
No88516 (魔界の仮面弁士 さん) に返信
> Console.OutputEncoding = System.Text.Encoding.Unicode
> とか。(場合によっては InputEncoding も)

ありがとうございます。以下のようにやってみましたが、#$と表示されます。

Console.OutputEncoding = System.Text.Encoding.Unicode
'Console.InputEncoding = System.Text.Encoding.Unicode
Console.WriteLine(ChrW(&H2423))
引用返信 編集キー/
■88521 / inTopicNo.8)  Re[3]: 出力ウインドウの文字化け
□投稿者/ 魔界の仮面弁士 (1814回)-(2018/09/05(Wed) 11:47:09)
No88520 (まっさん さん) に返信
> ありがとうございます。以下のようにやってみましたが、#$と表示されます。

OutputEncoding の指定は、
「Windows アプリケーション」ではなく、
「コンソール アプリケーション」の場合の対策です。
引用返信 編集キー/
■88522 / inTopicNo.9)  Re[4]: 出力ウインドウの文字化け
□投稿者/ まっさん (5回)-(2018/09/05(Wed) 11:48:17)
No88519 (魔界の仮面弁士 さん) に返信
投稿が被ってしまいました。上記の件、了解いたしました。

> どちらに出力されるかは、[ツール]-[オプション] のダイアログを開き、
> 左ツリーの[デバッグ]-[全般] を選択して、
> 右エリアの『出力ウィンドウの文字をすべてイミディエイト ウィンドウにリダイレクトする』
> のチェックボックスで切り替えられます。

Visual Basic 2010 Expressでも同じでした。

Hongliang 様、魔界の仮面弁士 様,
こんなに早く、回答を頂き、どうもありがとうございました。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ