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

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

新規登録して質問してみよう
ただいま回答率
86.12%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

解決済

Java キーボードからの全角入力が文字化けする

tometo
tometo

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

1回答

0リアクション

1クリップ

484閲覧

投稿2022/10/06 06:06

編集2022/10/07 05:33

前提

Windows 10のJava 19でキーボードから文字列を入力し、画面に出力させるシステムを作っています。
コンパイルでき、プログラムを実行中に半角の文字列は出力できるのですが、全角の文字列は文字化けが発生しました。
テキストエディタ:Sublime Text 3
コマンドプロンプト

実現したいこと

  • 全角の文字列も文字化けせずに出力する

発生している問題・エラーメッセージ

C:\YJSample\03>javac Sample4.java C:\YJSample\03>java Sample4 文字列を入力してください。 ohayou ohayouが入力されました。 C:\YJSample\03>java Sample4 文字列を入力してください。 おはよう ����が入力されました。

該当のソースコード

Java

import java.io.*; class Sample4 { public static void main(String[] args) throws IOException { System.out.println("文字列を入力してください。"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); System.out.println(str + "が入力されました。"); } }

試したこと

コマンドプロンプトのコードページを65001(UTF-8)にし、テキストエディタの文字コード(UTF-8)と同じくしたのですが、それでも文字化けが発生しました。
またWindows PowerShellでも同様に実行したところ、他の文字列も文字化けが発生しました。

イメージ説明

追加情報

イメージ説明
イメージ説明

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

m.ts10806

2022/10/06 06:11

Javaプログラムが書かれたファイル自体の文字コードは何でしょう。
tometo

2022/10/06 06:31

メモ帳にUTF-8と書かれています
y_waiwai

2022/10/06 06:33 編集

コマンドプロンプトのコードページをShiftJISにしたらどうなるでしょう
tometo

2022/10/06 06:43 編集

コマンドプロンプトでは同く全角の文字列だけが文字化けします。
YT0014

2022/10/06 08:48

コマンドプロンプトのフォントは、何を設定されていますか?
tometo

2022/10/06 09:02

M S ゴシックです。
m.ts10806

2022/10/06 10:49

>メモ帳にUTF-8と書かれています 画面キャプチャ提示いただけますか? ただ、プログラミングをメモ帳で行うのはかなりの悪手なので、 諸々含めるときちんとプログラミングに適したツールを使われたほうが良いと思います。 今回のような「本来止まる場所ではない場所で止まる」ことがなくなります。
YT0014

2022/10/06 11:12

>M S ゴシックです。 手元のWindows10にて確認しましたが、M S ゴシックが正常に設定されている場合、カレントパスとして、バックスラッシュ(逆向きの/)ではなく、¥マークが表示されます。 UTF8に設定した状態でのプロパティのフォント設定を再確認することをお勧めします。 また、プログラムを介さず、入力やメモ帳からのコピペなどで、全角文字を表示させた場合、正常に表示されますか?
tometo

2022/10/06 13:15 編集

m.ts10806様へ メモ帳の画面を追加情報に提示しました。また新しく統合開発環境を使用しようと思います。
tometo

2022/10/06 12:10

YT0014様へ プログラムをこちらにコピペするときに\からバックスラッシュに変わってしまいました。 また、メモ帳のソースコードをコピーし、コマンドプロンプトにぺーストしたところ、内部コマンドまたは外部コマンドとして認識されないというエラー文を除き、すべての行で文字化けせず、正常に表示されました。
YT0014

2022/10/06 13:35

失礼、PowerShellの出力画像と混同していました。 PSでの入力以外の文字化けは、フォント設定で改善されるかと思います。
YT0014

2022/10/06 13:36

出力をリダイレクトして、実際の文字コードをご確認いただくのはいかがでしょう?
tometo

2022/10/06 14:46 編集

YT0014様へ リダイレクトの方法が理解できていないのですが、調べた限り 出力を、java Sample4 >Sample4.java のようにリダイレクトすると、 おはよう とキーボードで打ち込んだ文字列だけが画面に出力されました。メモ帳側では、 文字列を入力してください。 0000が入力されました。 と表示され、文字コードはANSIでした。
YT0014

2022/10/07 01:24

説明不足失礼を。リダイレクトは、その方法です。 出力されたファイルを、バイナリビューアなどで、各文字、特に文字化けしている部分が、どんなコードになっているかを、ご確認いただきたい、という提案でした。 「お」があるはずのコードを見て、各文字コード(セット)と見比べば、入力側の文字コード(セット)が推測できます。 参考までに、各文字コード(セット)の文字コード表。 http://ash.jp/code/unitbl21.htm
tometo

2022/10/07 05:33

YT0014様へ 参考の文字コード表をありがとうございます。各文字はSJISだと分かったのですが、追加情報にもある文字化けしている部分、0について文字コード表と見比べても特定できませんでした。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。