2017-10-31 104 views
2

私のプロジェクトのドキュメントを作成していて、定数フィールド値セクションに正しく表示されない特定の文字に関する問題が発生しました。私の場合、これらの文字は "š、č、ć、ž、đ"です。ここでJavadoc - 定数フィールドの値が正しく表示されない

は私の単純なコードサンプルです:

enter image description here

、その後、一定の分野

enter image description hereをクリック上:javadocツールを実行した後

/** 
* _insert MainClass doc ščšđčžćđš_ 
* 
* @author Bob 
*/ 
public class MainClass { 
    private static final String COOL_LETTERS = "č-š-ć-đ-ž"; 
    private static final String NORMAL_LETTERS = "a-b-c-d-e"; 

    /** 
    * _insert main method doc đščđščšč_ 
    * 
    * @param args Arguments đšpšč 
    */ 
    public static void main(String[] args) { 
     System.out.println("Some normal letters: " + NORMAL_LETTERS); 
     System.out.println("Some cool letters: " + COOL_LETTERS); 
    } 
} 

、私は次のような結果を得ます

最初のイメージに示されているように、クラスおよびの方法の特殊文字は表示されますが、の文字列の値では表示されません。彼らは/uABCD

  • プロジェクトのエンコーディングとして表示されますが、私は-encoding を追加し、UTF8
  • に設定されている "UTF-8" "UTF-8" -charset "UTF-8"パラメータときに-docencoding javadocを作成する

これらの文字を正しく表示する方法はありますか?

答えて

2

JavaDocには、定数フィールドテーブルの定数式を表すハードコーディングされたメソッドがいくつかあります。これは設定または影響を受けません。

これには、変更できない印刷可能なASCII文字のみを再生することによって文字列式を印刷することが含まれます。他のすべての文字は、Unicodeエスケープとして再現されます。

これはJavaソースコードを生成しますが、これは見た目には優れていませんが、まったく同じ文字列コンテンツを生成します(ソースコードやドキュメントエンコーディングの影響を受けにくい)。おそらく、これが行われた理由です。

独自の修正バージョンのJavadocツールを実行したり、生成されたHTMLを後処理したり(サブクラス化されたドックレット内にある可能性がある)しない限り、これを避けることはできません。これは、実際の標準ドックレットが出力に使用される前に行われます。

出典:http://hg.openjdk.java.net/jdk7/jdk7/langtools/file/ce654f4ecfd8/src/share/classes/com/sun/tools/javadoc/FieldDocImpl.java#l175

関連する問題