如何从 Kindle PC 复制代码并保留格式

Posted

技术标签:

【中文标题】如何从 Kindle PC 复制代码并保留格式【英文标题】:How can I copy code from Kindle PC and preserve formatting 【发布时间】:2011-11-25 20:08:06 【问题描述】:

有没有人想出一个从 Kindle PC 复制代码的好方法?

我刚刚第一次将编程书下载到 Kindle PC。书中的代码格式非常好,我想直接将代码从 Kindle PC 书复制到 Visual Studio,而不必使用自动缩进。出于某种原因,当我从书中复制文本时,没有保留任何空格、制表符或换行符。我真的是这样结束的:

使用系统;使用 System.Collections.Generic;使用 System.Linq;命名空间 NumericQuery class Program static void Main(string[] args) List list = new List() 1, 2, 3 ; var query = from number in list where number

我很沮丧,因为我没有 ISBN(因为我没有购买硬拷贝),所以无法从作者的网站下载代码。

【问题讨论】:

每个人的 ISBN 号都是一样的。 在大多数情况下,URL 中的 ASIN 是 ISBN(无论如何都会在页面上列出)。这不能保证(有时会发生冲突,通常是出版商重复使用绝版书籍​​中的 ISBN 的旧书籍),但大多数时候它是正确的。 不能复制粘贴文本?!这太荒谬了。为什么老实人总要为别人买单? 【参考方案1】:

我刚刚解决了将代码 sn-ps 从 Kindle 书复制到您选择的文本/源代码编辑器的问题。在 ***.com 上的一篇题为“为什么 Chrome 将这个 html 呈现为一个完全空白的页面?来自 Node.js,遵循 Node Beginner Book [关闭]”的帖子中讨论了相同的主题。该特定帖子描述了我遇到的确切相同的问题(相同的 Kindle 书,相同的代码 sn-p,相同的代码症状!)。不幸的是,在任何受访者可以提供确切答案之前,该帖子已过早关闭,否则我会回复该帖子。

但是,我更深入地研究了这个问题,并在从 Kindle 书籍复制代码 sn-ps 时发现了问题的根本原因:当您从 Kindle 应用程序复制文本时,它使用十六进制代码 0xA0 表示空格字符,而不是 0x20 .十六进制代码 0xA0 是不间断空格的扩展 ASCII。好吧,当您希望复制和粘贴 HTML 文字字符串时,这不起作用,就像上述帖子中的情况一样。

因此这解释了上述帖子中的行为:原始发布者表示他可以通过手动重新输入所有文本来解决问题。这是因为手动重新输入使用了正确的 0x20。

这还有其他一些我起初不理解但现在解释的症状:我的文本编辑器 (Notepad++) 没有正确识别我的源代码中的保留关键字。同样,这是因为关键字由 0xA0 分隔,而不是 0x20。 Notepad++ 中的关键字解析器必须对 0x20 进行标记。

解决方案:从 Kindle 粘贴文本后,在源代码编辑器中使用正则表达式搜索功能执行搜索和替换。搜索正则表达式 \xA0 并将其替换为 \x20(或者,根据您的编辑器,只需在“替换”字段中输入一个空格键字符 [Notepad++ 就是这样工作的])。

【讨论】:

【参考方案2】:

我会查看出版商的网站。我发现他们经常会发布书籍随附的源代码。如果他们不这样做,那么我购买这本书的可能性就会大大降低。 (在某些情况下,再多的复制/粘贴都无法检索到任何代码,无论格式如何,因此尝试从发布者那里获取代码是唯一的方法。

【讨论】:

【参考方案3】:

我发现 Kindle for PC 只是将所有换行符转换为 \x20 导致查找和替换技巧不起作用。我的解决方案不是很好,但很有效:

我下载了 Calibre 并开始使用它。可以这么说,您可以通过谷歌搜索找到使用 Calibre 打开所需内容的方法。

【讨论】:

以上是关于如何从 Kindle PC 复制代码并保留格式的主要内容,如果未能解决你的问题,请参考以下文章

在网页编辑器中粘贴时如何保留Word中的表格?

在网页编辑器中粘贴时如何保留Word中的表格?

在网页编辑器中粘贴时如何保留WORD中的表格

复制/粘贴到 Word 时如何保留 rstudio 的格式?

Kindle购买了书,下载下来的awz3格式文件如果拿到另外的Kindle上能否阅读

如何在excel vba中保留格式复制