0

生成された XHTML5 番号付きセクション タイトルで、番号とタイトル文字列の間に Â があることに気付きました。生成ミスかと思いました。しかし、いいえ、私の DocBook ディストリビューションの gentext ファイルである common/en.xml は、実際にこれを指定しています。

common/en.xml の 338 行目:

<l:template name="section" text="%n. %t"/>

%n に続くドットとスペースは、16 進エディタで表示すると、ASCII 文字コード C2 と A0 であり、それぞれ Â と NBSP 文字です。NBSPは理解できます。しかし、なぜÂ?

これは、カスタマイズ レイヤーで変更できることを理解しています。しかし、デフォルトは奇妙に思えます。

docbook-xsl-ns-1.77.1 を使用しています。

4

1 に答える 1

2

これは、エンコーディングが UTF-8 であるためです。これは、最近のテキストの通常の Unicode エンコーディングです。UTF-8 では、0x7F を超える文字は、含まれる有効なコード ビットの数に応じて、2、3、または 4 バイトのシーケンスで表されます。

0xC2 は、2 バイト シーケンスを開始する文字の 1 つです。バイナリでは、1100 0010 です。2 つの 1 ビットは 2 文字のシーケンスを表し、下位 5 ビットはエンコードされた文字の最初の 5 ビットです。2 番目の 0xA0 は 1001 0000 です。先頭の 1 ビット (その後に 0 ビットが続く) はシーケンスの継続を表し、下位 6 ビットはエンコードされた文字の下位ビットです。

最初のバイトの下位 5 ビットと 2 番目のバイトの下位 6 ビットを合わせると、16 進数の U+A0 で 000 1001 0000 が得られます。これは、実際にノンブレーク スペースです。

于 2013-02-16T17:26:41.087 に答える