32

エンコーディング タイプを UTF-8 として指定して Java ソース ファイルを保存し (メモ帳を使用。デフォルトでは、メモ帳のエンコーディング タイプは ANSI です)、次を使用してコンパイルしようとしました。

javac -encoding "UTF-8" One.java

しかし、それはエラーメッセージを出しました」

One.java:1: illegal character: \65279

?public class One {

^
1 error

これをコンパイルできる他の方法はありますか?

ソースは次のとおりです。

public class One {
    public static void main( String[] args ){
        System.out.println("HI");
    }
} 
4

11 に答える 11

47

ファイルUTF-8 として読み取られます。そうしないと、値が「65279」の文字が表示されません。ドキュメントによるとjavacソースコードがプラットフォームのデフォルトのエンコーディングであることが期待されます。javac

-encodingが指定されていない場合、プラットフォームのデフォルト コンバーターが使用されます。

10 進数の 65279 は 16 進数の FEFF で、Unicode バイト オーダー マーク (BOM)です。UTF-8 は常にオクテット ストリームとしてエンコードされ、エンディアンの問題がないため、UTF-8 では不要です。

メモ帳は、必要がない場合でも BOM に固執するのが好きですが、一部のプログラムは BOM を見つけるのが好きではありません。他の人が指摘しているように、メモ帳はあまり優れたテキスト エディタではありません。別のテキスト エディターに切り替えると、ほぼ確実に問題が解決します。

于 2009-11-12T23:47:48.397 に答える
20

Notepad ++でファイルを開き、[エンコード]->[BOMなしでUTF-8に変換]を選択します。

于 2012-06-10T12:18:11.893 に答える
9

試すjavac -encoding UTF8 One.java

引用符がなく、UTF8 であり、ダッシュはありません。

その他のリンクについては、このフォーラムのスレッドを参照してください

于 2009-11-12T23:44:52.710 に答える
6

以下を参照してくださいたとえば、プログラムで議論できます(テルグ語)

プログラム (UnicodeEx.java)

class UnicodeEx {  
    public static void main(String[] args) {   
        double ఎత్తు = 10;  
        double వెడల్పు = 25;   
        double దీర్ఘ_చతురస్ర_వైశాల్యం;  
        System.out.println("The Value of Height = "+ఎత్తు+" and Width = "+వెడల్పు+"\n");  
        దీర్ఘ_చతురస్ర_వైశాల్యం = ఎత్తు * వెడల్పు;  
        System.out.println("Area of Rectangle = "+దీర్ఘ_చతురస్ర_వైశాల్యం);  
    }  
}

これは、「UnicodeEx.java」として保存し、エンコーディングを「unicode」に変更したときのプログラムです。

**コンパイル方法**

javac -encoding "unicode" UnicodeEx.java

実行方法

Java UnicodeEx

高さ = 10.0、幅 = 25.0 の値

長方形の面積 = 250.0

于 2014-08-28T05:59:11.097 に答える
4

これが非常に古いスレッドであることは知っていますが、Java ではなく PHP で同様の問題が発生していたので、Google がここに連れて行ってくれました。私は Notepad++ (普通のメモ帳ではない) で PHP を書いていましたが、インクルード ファイルを呼び出すたびに余分な白い線が表示されることに気付きました。Firebug は、これらの余分な行に 65279 文字があることを示しました。

実際には、メインの PHP ファイルとインクルード ファイルの両方が UTF-8 でエンコードされています。ただし、Notepad++ には、「BOM なしの UTF-8」としてエンコードするオプションもあります。これで私の問題は解決しました。

結論: UTF-8 エンコーディングは、BOM なしで UTF8 を使用するようにエディターに指示しない限り、この余分な BOM 文字をあちこちに挿入します。

于 2012-02-03T20:21:57.207 に答える
0

ここでは、メモ帳で編集しても問題なく動作します。話の教訓は、メモ帳を使わないことです。そこには、メモ帳が挿入している、または喜んで隠している、印刷できない文字が含まれている可能性があります。

于 2009-11-12T23:45:04.847 に答える
0
  • ワードパッドまたはメモ帳以外のエディターでファイルを開きます。

  • [名前を付けて保存] の種類を [テキスト ドキュメント - MS-DOS 形式] を選択します。

  • プロジェクトを再開する

于 2016-05-10T16:13:55.170 に答える