• ベストアンサー

Java 文字コードのエンコーディングについて

Java 文字コードのエンコーディングについて こんばんわ。 eclipse3.5で開発(UTF-8)しているソースを、DOS窓でコンパイルすると、勝手にMS932でマッピングしようとするんですよね。 何故だかわかる方いらっしゃいませんか? また、解決策等を教えていただけると幸いです。 eclipseで開発してるのに、態々DOS窓でコンパイルしなくてもってのはなしでお願いします。(仕事上必要)

  • Java
  • 回答数3
  • ありがとう数19

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

Windows上のJavaコンパイラが何も指定しないとMS932でソースを読むというのは仕様です。これを変更するにはjavacを実行するときに"-encoding utf-8"というオプションを付けましょう。Antを使っている場合はbuild.xmlの<javac>タグにencoding="utf-8"という属性を追加してください。

akito0417
質問者

お礼

あぁ、間違えて補足の方に書いてしまいました・・・。 ごめんなさい・・・。

akito0417
質問者

補足

回答ありがとうございます。 そんな使用なんですか・・・。 早速明日出勤したら試してみようと思います。

その他の回答 (2)

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.3

コンパイルオプションにより、文字エンコーディングを指定して、 javac -encoding UTF-8 コンパイルするプログラム.java とすると、良いかも。

akito0417
質問者

お礼

あぁ、間違えて補足の方に書いてしまいました・・・。 ごめんなさい・・・。

akito0417
質問者

補足

回答ありがとうございます。 早速明日出勤したら試してみます。

  • public_sa
  • ベストアンサー率52% (13/25)
回答No.1

マッピングする の意味がわかりませんが、 Eclipseのコンソール表示がutf8で DOS窓の表示がMS932だから文字化けちゃう っていうような話でなくてですか? であればDOS窓の表示をchcpしてやれば っと思うんですが。

akito0417
質問者

お礼

回答ありがとうございます。 恐らく、public saさんの言うとおりだと思います。 でも、エラーメッセージにマッピングうんたらって出てたんですよね・・・。

関連するQ&A

  • J2MEでUTF8ソースコードでコンパイルエラーが発生する

    J2MEのWTK2.5.2のKToolbarを使って、携帯アプリの開発をやっているのですが、Javaソースコードを今までSJISで保存していたのを、UTF-8に変更したら、下記のようなコンパイルエラーが発生しました。 全て日本語文字を使っている所のようです。 JavaソースコードをUTF8で開発するには、どこの設定を変更しないと駄目なのでしょうか?   警告:この文字は、エンコーディング MS932 にマップできません。

    • ベストアンサー
    • Java
  • 文字コードについて(どのファイルをどの文字コードにしてWeb開発を進めていくべきか)

    【疑問の背景】 文字コードについて(どのファイルをどの文字コードにしてWeb開発を進めていくべきか)   国際標準で使われているUTF-8で統一しておけば問題はないだろうと思って開発を進めていると・・・   UTF-8は「日本語が2~4バイト」で扱われるという、バイトの扱いが厄介であるため、   できればJavaでのUTF-8で開発は避けたい、だから「Shift-JIS」にしておきたいという話があがり、   各々のファイルにどの文字コードを設定すれば良いのかがわからなくなっている状態です。    いくつかの疑問がでていまして  判る範囲で構いませんので文字コード設定の判断についてのアドバイスいただけませんでしょうか? 【現在の開発文字コード】 HTMLファイル: UTF-8 JSPファイル: UTF-8 Javaファイル(servlet): UTF-8 Javaファイル(Bean): UTF-8 Javaファイル(JSPから出来たサーブレット): UTF-8 データベース: UTF-8 【設定したい今後の予定文字コード】 HTMLファイル: UTF-8 JSPファイル: UTF-8 Javaファイル(servlet): Shift-JIS Javaファイル(Bean): Shift-JIS Javaファイル(JSPから出来たサーブレット): Shift-JIS データベース: UTF-8 【疑問1】 javaファイル(servlet,Bean)をどのコードにすべきかについて  全てS-JISにした方がいいのか、UTF-8にした方がいいのかどうあるべきなのでしょうか?  (UTF-8 で 「日本語が2~4バイト」として扱われると、どういった弊害が発生するのでしょうか?) 【疑問2】 javaファイルをS-JISに変える方法について  今はサクラエディターというツールで  名前を付けて保存 → 文字コードセット「Shift-JIS」 → 保存 → ファイル名の文字コードセットの変更完了    今はエクスプローラーから直接フォルダの中にあるファイルを触っている状況なのですが、  eclipseから「ファイルの文字コードセットを変更する方法」はありますでしょうか? 【疑問3】 「Shift-JIS」に設定して開発していく必要性について  既存で「utf-8」で設定されているjavaファイルを、「Shift-JIS」に設定して開発していく必要性はあるのでしょうか? (all in one eclipse 3.4 を入れたとき、デフォルトで「utf-8」でjavaファイルが作られるつくりになっているみたいなのですが・・・)   【疑問4】 javaファイル作成時、「Shift-JIS」の形式でファイルを生成する方法について     現在、javaファイルを作成する場合「utf-8」のコードでjavaファイルが生成されるようになっています。      【自作で作成したjavaファイルの場合】    「サクラエディターを使用して、文字コードセットをShift-JISに変更すれば、ずっとShift-JISのファイルの状態」にすることができました。      しかしここで問題が出たのですが      【JSPファイルから自動生成されたjavaファイル(servlet)の場合】    「サクラエディターを使って、Shift-JISに変更した後に、JSPファイルを編集すると、また“utf-8に戻ってしまう” 状態」です。    現状としては「JavaファイルはShift-JISに統一して欲しい」という要望なので、    JSPから自動生成されたjavaファイルが "utf-8" になってしまいます。      JSPから自動生成されたjavaファイルを    "常にShift-JISに設定する" 方法はありますでしょうか?     【環境】  OS   ・WindowsXP Pro    java開発環境   ・all in one eclipse(3.4)   ・TomCat(6.0)   ・Java JRE(1.6)   ・MySQL(5.0)

    • ベストアンサー
    • Java
  • Javaでデフォルトエンコーディングについて質問します。

    Javaでデフォルトエンコーディングについて質問します。 OSはWindowsXPです。 String.getBytes()などを使ったとき、文字コードはデフォルトのものが使われます。 WindowsXPなら、UTF-8がデフォルトのはずです。 ですが、とあるマシン1台のみ、Windows-31Jがデフォルトになってしまいます。 これは、何が原因なのでしょうか? もともとマシンを使っていた人間が細工をしたのでしょうが、突然行方をくらましたため、元に戻す方法が分かりません。

    • ベストアンサー
    • Java
  • javaのコンパイルエラーについて

    abstract を用いたクラスを作成し、コンパイルした際に ?サソabstract class Vehicle ↑この文字は、エンコーディングMS932にマップできません。 encoding utf-8をつけて コンパイル ?abstract class Vehicle ↑\ufeffは不正な文字です。 abstractの前には何も入っておらず、スペースも消してあります。 abstract未実装の他のソースはコンパイルできます。 解決法が知りたいです。

    • ベストアンサー
    • Java
  • 内部文字コードとは?

    javaは内部では文字をユニコードとして扱うとは、 どういう事でしょうか? 例えば、javaのブログラムをwindows上で作ったとして、 「こんにちわ」と出力させるプログラムを作ったとすると、 public class Hello{ public static void main(String[] args) { System.out.println("こんにちわ"); } } となりますよね、この時、このjavaのソースファイルを、 ユニコードとして保存して、コンパイル、実行しないと、 正常に動かないという事でしょうか? つまり、ソースをシフトJISで保存してJAVAでコンパイルをしようとすると、ソースコード中の文字をユニコードとして扱うため、 文字化けして、コンパイラは一体何の事か分からずエラーみたいな感じになるのでしょうか?(それとも自動で文字コードをユニコードに変換してくれるのかな?) 要するに、「内部文字コード」という言葉が何を指しているのかが分からないですが、よろしくお願いします。

  • java起動時の日本語引数文字化けについて

    java初心者です。 C++ソースからCreateProcess関数を用いてjava.exeを起動し、アプリケーションを起動させるアプリケーションを作成しています。 現在、java側で日本語が文字化けしてしまい、期待する動作が得られていません。 具体的には起動するjavaアプリケーションに引数としてパスを渡しており、そのパスに 日本語が含まれていると文字化けにより解釈できないという状況です。 日本語がアプリケーション内部で正しく利用できるようにはどのようにすれば良いでしょうか。 環境は以下の通りです。 ※情報が足りない等ありましたらお願い致します。。 OS:WindowsXP C++の開発環境:VC6 CreateProcess関数起動時の文字コード:UTF8 java開発環境:eclipse3.5 javaの引数はStringで受けるのですが、java内部ではUTF16らしいので、UTF8で記述された 文字列をUTF16として読むため文字化けしているのかなと調べた結果推測しています。 だとすると、java側で引数で受けた文字列をUTF-8からUTF-16に変換すれば良いのかなと 考えています。 ではその場合どのような処理が必要になるのでしょうか。(String#getBytes()を使う?) 後、javaコンパイル時にエンコードを指定するという方法もあるようですが、その方法は 他へ影響が大きいため、利用できそうにありません。 情報が足りない等あればお願い致します。 ご回答よろしくお願い致します。

  • javaでBuffered Readerの式から日本語で入力した文字を

    javaでBuffered Readerの式から日本語で入力した文字を出力するとき文字化けが起きてしまいます。わかる方対応策を教えてください。 何か解決策はないでしょうか? BUFFERED READERから英数字を入力し、出力するのは問題なくできるのですが 日本語で入力すると文字化けが起きてしまいます。 コマンドプロンプトでjavac -encoding utf-8 クラス名.javaと入力すればこの問題は解決できましたが eclipseから実行するときはjavac -encoding....って打てませんよね。 eclipseのエディタ(ソースコード上)では日本語は問題なく表示されていて、BUFFERED READERから 日本語文字を出力するときだけ文字化けしてしまいます。 Eclipseのエンコードの設定を変えても直りませんでした。 以上です。よろしくお願いします

  • javaでBuffered Readerの式から日本語で入力した文字を

    javaでBuffered Readerの式から日本語で入力した文字を出力するとき文字化けが起きてしまいます。わかる方対応策を教えてください。 何か解決策はないでしょうか? BUFFERED READERから英数字を入力し、出力するのは問題なくできるのですが 日本語で入力すると文字化けが起きてしまいます。 コマンドプロンプトでjavac -encoding utf-8 クラス名.javaと入力すればこの問題は解決できましたが eclipseから実行するときはjavac -encoding....って打てませんよね。 eclipseのエディタ(ソースコード上)では日本語は問題なく表示されていて、BUFFERED READERから 日本語文字を出力するときだけ文字化けしてしまいます。 Eclipseのエンコードの設定を変えても直りませんでした。 よろしくお願いいたします。

  • javaの文字コードについて

    いつもお世話になっております。 webで入れられた文字列に全角が含まれるか判定したいのですが、 文字コードについて質問させてください。 javaは標準では、String型は標準ではunicodeだと思うのですが、 これはutf-8なのでしょうか。utf-16なのでしょうか。 試しに以下のように"A"の文字をbyteに変換してみたところ、 String strTest = "A"; byte[] bbb = strTest.getBytes(); for(int i = 0 ; i < bbb.length ; i++){ System.out.println(bbb[i]); } "65"という結果が返ってきました。 http://ash.jp/code/unitbl1.htm 等文字コード表を見ると、"A"は"41"と定義されており、なぜ"65"が返ってくるのでしょうか。 変な質問ですいません。 関係無いと思いますが、ソースはS-JIS、windwos環境で実行しています。 よろしくお願いします。

    • ベストアンサー
    • Java
  • Javaの勉強をしていて、課題がでたのですが…

    Javaの勉強をしていて、課題がでたのですが… 課題の中にコンパイルした画面があり、正しい結果がでるかどうか確かめて、ソースコードを提出します。 開発環境として、JDKとEclipseをダウンロードし、EclipseでHello worldと表示させるコードを書きました。 実行(Ranas)を押したらコンソールに、きちんとHello worldが表示されたので、コードはあっていると思います。 で、ここからコンパイルの方法を調べて、やってみようと思うのですが…(Macユーザーです)↓ https://style.potepan.com/articles/17236.html https://eng-entrance.com/java-basic-compile これって、Eclipseに打ち込んだコードを、テキストエディタにコピペして作ってくのでしょうか?(Eclipseは下書き?) また、JDKって使うタイミングはあるのでしようか? 恐らくプロの方には、「そんなこと聞く?」という感じかもしれませんが、教えて頂けるとありがたいです。

    • ベストアンサー
    • Java

専門家に質問してみよう