質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

4回答

2208閲覧

””内が?になってしまいます。

ryunosue

総合スコア8

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

0グッド

0クリップ

投稿2017/04/12 12:10

###前提・実現したいこと
こんにちは。プログラミングを勉強し始めたものです。Visual studio2017を使い、教本に沿ってコンソールアプリを作る練習をしていたのですが、教本通りに作り、開始をためしてみると ””内の日本語が?になってしまいます。
ソースコード内”日本語”→ 開始すると ???
###発生している問題・エラーメッセージ

下の ”は、奇数です”が,開始をすると 12345?????? となる。

###ソースコード

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
int a = 12345;
if(a%2==0)
{ Console.WriteLine(a + "は、偶数です");
}
else { Console.WriteLine(a + "は奇数です");
}
Console.ReadKey();
}
}
}

###試したこと
エンコード付きで保存をし、日本語(シフトjif)を試したら文字化けしてしまいました。

###補足情報(言語/FW/ツール等のバージョンなど)
質問が情報不足かもしれませんがよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2017/04/13 02:56

デバッグなし実行をして、コマンドプロンプトのタイトルバーを右クリックしてプロパティを選択し、現在のコードページを確認してください
ryunosue

2017/04/13 03:24

プロパティ内のオプションに「カーソルサイズ」「コマンドの履歴」「編集オプション」の欄しかないのですが、確認する場所が間違っているのでしょうか?
ozwk

2017/04/13 03:41

じゃあコマンドプロンプトでchcpを打ってみてください。
ryunosue

2017/04/13 04:13

Active code page : 850 とでてきました。
guest

回答4

0

ベストアンサー

コマンドプロンプトのコードページが850(=西ヨーロッパ)になっています。

システムロケールが「日本語」になっているか確認してください。

投稿2017/04/13 04:18

ozwk

総合スコア13528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryunosue

2017/04/13 04:43

確認したところ、英語(英国)となっていました。日本語に直して開始したら、無事「12345は、奇数です」となりました。ありがとうございました!
guest

0

C#

1Console.WriteLine(Console.Out.Encoding); 2

これを試してみてください。出力のエンコーディングがわかります。
うちでは UTF8 になります。

シフト JIS でないものをシフト JIS でデコードしようとしたら文字化けします。

投稿2017/04/12 13:14

Zuishin

総合スコア28660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryunosue

2017/04/12 13:36

回答ありがとうございます。Console.WriteLine(Console.Out.Encoding);をソースコード内のどこに入れればよいのでしょうか? 知識不足で申し訳ありません。
Zuishin

2017/04/12 13:52

出力のエンコーディングを取得するだけなので、どこでも。 何をしているかというと、出力のエンコーディングを出力しています。 どういうことかというと、どういうエンコーディングで出力されているかがわかります。 わかるだけです。 文字化けを直すものではありません。 結局のところ、出力のエンコーディングがわかります。
ryunosue

2017/04/12 14:31

解説ありがとうございます! System.Text.SBCSCodePageEncoding とでてきました。
guest

0

型を強く意識したプログラミングをしましょう。

Console.WriteLine の引数で a ⇒ a.ToString() としてみてください。

投稿2017/04/12 12:37

編集2017/04/12 12:37
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryunosue

2017/04/12 13:21

回答ありがとうございます。else { Console.WriteLine(a + "は奇数です"); }を、else { Console.WriteLine(a.ToString() + "は奇数です"); }とすればよいのでしょうか? 知識不足で申し訳ありません。
退会済みユーザー

退会済みユーザー

2017/04/12 17:25

すみません、勘違いしてました。 C# では「a + "は奇数です"」と「a.ToString() + "は奇数です"」は同じでした。 質問者さんの環境で文字化けする理由は分かりません(明日考えてみます)
ryunosue

2017/04/13 02:04

お手数をおかけしますがよろしくお願いします。
退会済みユーザー

退会済みユーザー

2017/04/13 03:18

以下の記事に書いてあるようにデフォルトの「Unidoce (UTF-8 シグネチャ付き) - コードページ 65001」を「日本語 (シフト JIS) - コードページ 932」に変更してソースファイルを保存してから実行したのかと思って試してみましたが、問題を再現できません(文字化けせず正しい結果になります) http://neareal.net/index.php?Programming%2FEnvironment%2FVisualStudio%2FChangeTheCharacterCode 何をどうしたのか、具体的な再現手順を書いていただけませんか?
ryunosue

2017/04/13 03:32

visual studioを開き、新規作成からコンソールアプリを選択。static void Main(string[] args){ }内に上記の通りに、int a= ~ Console.ReadKey(); を入力。開始をすると、12345????? となってしまう。という感じです。
guest

0

エンコード付きで保存をし、日本語(シフトjif)を試したら文字化けしてしまいました。

教本で、ソースコードを Shift JIS エンコーディングで保存するように指示されていたんでしょうか?

ソースコードを UTF-8 エンコーディングで保存したら、期待通りの動作をしたりはしませんか?

投稿2017/04/12 18:08

hidori

総合スコア402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryunosue

2017/04/13 02:00

回答ありがとうございます。自分なりに文字化けをする理由を調べていたところ、Shift Jif→UTF-8、UTF-8→Shift Jif にするとなおるのような記事を見かけたので試してみました。UTF-8で保存してもだめでした…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問