我注意到我生成的XHTML5编号部分的标题在数字和标题字符串之间。我认为这是一个生成错误。但事实并非如此,我的DocBook发行版的gentext文件common/en.xml实际上指定了这一点。
common/en.xml的第338行:
<l:template name="section" text="%n. %t"/>在十六进制编辑器中查看时,%n后面的点和空格是ASCII字符代码C2和A0,分别是和NBSP字符。我能理解NBSP。但是为什么呢?
我知道我可以在我的定制层中改变这一点。但违约似乎很奇怪。
我使用docbook-xsl-ns-1.77.1。
发布于 2013-02-17 01:26:41
这是因为编码是UTF-8,这是目前文本的常规Unicode编码。在UTF-8中,0x7F以上的任何字符都由2、3或4个字节的序列表示,具体取决于它包含多少有效码位。
0xC2是启动2字节序列的字符之一。在二进制中,它是11000010。两个1位表示2字符序列,最下面的5位是编码字符的前5位。第二个,0xA0,是10010000。单个前导1比特(后跟0比特)表示序列的延续,底部6比特是编码字符的最低比特。
把第一个字节的底部五位和第二个字节的底部六位放在一起,我们得到了00010010000,以十六进制U+A0表示,这确实是不间断的空格。
https://stackoverflow.com/questions/11770764
复制相似问题