1

我们将数字化很多书籍。我们想在不影响电子书的流程的情况下在原书中标记换行符的地方。哪个不可见的 Unicode 宪章可用于标记原始文件中的某些特殊位置?

(\n 将用于表示段落的结尾)

This  is  a  sentence 
in the original book that
I want to mark      line
break places.

替换的正确字符是什么*

This  is  a sentence * in the original book that * I want to mark line *break places.
4

2 回答 2

5

Unicode 没有隐藏字符的概念,它表示某些原始文件中的换行符,但不会导致渲染中的换行符。Unicode 对纯文本数据进行编码,它的换行控制字符在呈现纯文本时会产生影响。

这里重要的是如何使用这些文件。如果它们需要用纯文本编辑器处理,那么你需要决定:要么在默认渲染中复制换行符,要么在创建文件时省略它们。你不能让它们隐形。而不同的文本编辑器,如记事本和 Emacs,可能会使用不同的行控制约定;一个程序的行尾是另一个程序的段尾。

如果文件仅由您创建的程序处理,那么您可以使用您喜欢的任何约定。最合乎逻辑的是:“行和段落分隔符。Unicode 标准提供了两个明确的字符,U+2028 行分隔符和 U+2029 段落分隔符,用于分隔行和段落。它们被认为是 Unicode 纯文本中表示行和段落边界的默认形式。在每个行分隔符之后开始一个新行。在每个段落分隔符之后开始一个新段落。由于这些字符是分隔符代码,因此不必以它们开始第一行或段落或结束最后一行或段落。这样做将表明后面有一个空的段落或行。段落分隔符可以插入文本段落之间。它的使用允许创建纯文本文件,这些文件可以在接收端以不同的线宽进行布局。行分隔符可用于指示无条件的行结束。” http://www.unicode.org/versions/Unicode6.1.0/ch16.pdf(PDF中的第 6 和 7 页)

注意 U+2028 和 U+2029 通常不被文本编辑器理解。它们适用于以纯文本格式存储数据。当要渲染文本时,渲染软件可以选择忽略原来的分割线,把 U+2028 当作一个空格,除非前面有一个连字符(这是一个没有更高级别无法解决的问题)信息:以“foo-”结尾的行和以“bar”开头的行可以表示单词“foobar”作为断行的连字符,或连字符的复合词“foo-bar”,或者在某些情况下,组合“foo-bar”)。

于 2012-07-10T15:48:24.593 回答
0

使用换行符 (LF, "\n", 0x0A) 和/或回车符 (CR, "\r", 0x0D)。
即,用于此目的的常规字符。

于 2012-07-10T11:31:51.100 回答