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

Lou*_*rda 10 kindle

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

我刚刚第一次向Kindle PC下载了一本编程书.本书中的代码格式非常好,我想将代码直接从Kindle PC书籍复制到Visual Studio,而不必使用自动缩进.出于某种原因,当我从书中复制文本时,不会保留任何空格,制表符或换行符.我最终得到了这个:

使用系统; 使用System.Collections.Generic; 使用System.Linq; namespace NumericQuery {class Program {static void Main(string [] args){List list = new List(){1,2,3}; var query = from number in number number number <3 select number; foreach(查询中的var编号){Console.WriteLine(number); }}}}

我很沮丧,因为我没有从作者的网站下载代码,因为我没有ISBN(因为我没有买硬拷贝).

小智 6

我刚刚解决了将Kindle电子书中的代码片段复制到您选择的文本/源代码编辑器的问题.在stackoverflow.com上的帖子中讨论了同样的主题,标题为"为什么Chrome将此HTML呈现为完全空白的页面?来自Node.js,遵循节点初学者书籍[已关闭]".该特定帖子描述了我遇到的完全相同的问题(相同的Kindle书,相同的代码片段,相同的代码症状!).不幸的是,在任何受访者提供确切答案之前,该帖子过早关闭,否则我会回复该帖子.

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

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

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

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