问题标签 [line-endings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1084 浏览

c++ - 使用 istreambuf_iterator 进行奇怪的行结束转换(CR、LF、CRLF)(ifstream(..., ios::binary))

我正在 MSVC++2010 中编写 CRC32 例程,需要以二进制模式逐字节读取文件。

我正在使用ifstreamand istreambuf_iterator,它通常可以工作,但它对行尾做了一些奇怪的事情。

例如,如果我有一个包含内容的文件

我的程序的输出是

所以基本上,它用 CR 替换了最后一个 LF。奇怪的。

如果我有

它是

所以它交换了CRLF!当文件中有更多内容时,它也会交换它们。

有什么解决方法吗?我想为此坚持使用 C++,实际上我想读取二进制文件而不解释任何行尾(我认为只istream_iterator会这样做)!


为了完整起见,我的测试代码是这样的,改编自pyCRC

0 投票
6 回答
4155 浏览

python - 这个 Python 语句的含义是什么?

更具体地说,我不确定紧随其后的“%”和“\”符号应该是什么意思:

这个返回语句是否被认为是一行代码?因为我最初认为“\”是为了将似乎过长的行分成两部分,以提高可读性并避免回绕。

另外,我这里的表格反映了我的代码中的内容。说 '(self.id, a, b, c, d, e, f)' 的部分确实比 return 语句的开头更远了一次。

基本上,该语句等效于:

在这个没有“\”涉及....

0 投票
1 回答
123 浏览

line-endings - 不同的行尾背后有什么原因吗?

为什么在不同操作系统中编写的文档具有不同的行尾字符?这背后是否有任何技术原因,或者创作者只是因为他们想要而放置了不同的角色。

0 投票
2 回答
371 浏览

emacs - 如何在连接到 lein swank 的 ClojureBox (EmacsW32) REPL 中抑制 ^M 字符

我正在从我的ClojureBox安装连接到一个 swank 服务器。即lein swank从我的项目目录,然后M-x slime-connect从 EmacsW32。

但是,当我这样做时,我会在 REPL ( ^M) 中到处看到 DOS 行尾。IE

我知道这与平台编码有关,但我无法弄清楚如何抑制它们。我在 EmacsW32 菜单中四处寻找并尝试了 java 命令行系统属性(在 lein.bat 中)-Dfile.encoding=ISO-8859-1,但无济于事。

我还发现了有关在缓冲区中全局查找/替换 ^M 的其他问题 - 但我想过滤 REPL 输出。

我还注意到*inferior-lisp*缓冲区中的以下内容:

(do (.. java.net.InetAddress getLocalHost getHostAddress) nil)(swank.swank/start-server "c:/Users/noahz/AppData/Local/Temp/slime.4912" :encoding "iso-latin-1-unix")

0 投票
1 回答
2202 浏览

c++ - 当它们进入`std::stringstream`时,我可以去掉回车吗?

我想std::stringstream为我去掉那个回车(并且不想复制和修改segment)。

我该怎么办?我本以为无论如何都会发生这种情况,在 Linux 上,对于文本模式的流......但也许这种机制是在文件流的逻辑中。

0 投票
3 回答
10502 浏览

unix - 如何确保我的所有源文件都保持 UTF-8 和 Unix 行结尾?

我正在寻找一些适用于 Linux 的命令行工具,它们可以帮助我检测并将文件从iso-8859-1windows-1252等字符集转换为utf-8以及从 Windows 行尾转换为 Unix 行尾。

我需要这个的原因是我正在通过 SFTP 使用 Windows 上的编辑器(如 Sublime Text)在 Linux 服务器上处理项目,这些编辑器不断地搞砸这些事情。现在我猜我的文件大约有一半是utf-8,其余的是iso-8859-1windows-1252因为看起来 Sublime Text 只是在我保存文件时选择文件包含的字符集。即使我在选项中指定默认行结尾是LF,行结尾总是 Windows 行结尾,所以我的文件中大约有一半有LF,一半是CRLF

所以我至少需要一个工具来递归地扫描我的项目文件夹并提醒我有LF行结尾偏离utf-8的文件,这样我就可以在将更改提交到 GIT 之前手动修复它。

任何关于该主题的评论和个人经验也将受到欢迎。

谢谢


编辑:我有一个临时解决方案,我使用treefile输出有关我项目中每个文件的信息,但这有点不稳定。如果我不包括该-i选项,file那么我的很多文件都会得到不同的输出,例如ASCII C++ 程序文本HTML 文档文本英文文本等:

但是,如果我确实包含-i它,它不会向我显示行终止符:

另外为什么它显示charset=us-ascii而不是utf-8?什么是text/x-c++?有没有一种方法可以只输出charset=utf-8每个line-terminators=LF文件?

0 投票
0 回答
384 浏览

ssis - 在 SSIS 2005 中读取 XML 文件时如何管理行尾

我有一个简单的 xml 文件。它将该文件中的一个元素定义为...

我创建了两个与该架构匹配的 Xml 文件,一个使用 CR/LF 行尾(Windows),另一个使用 LF 行尾(Unix)。

Unix 文件的 Comments 值的长度为 4000 字节。由于额外的 CR 字节,Windows 文件的相应长度大于 4000 字节也就不足为奇了。

使用 Xml Notepad 验证 Xml 文件时,两个文件都有效。正如预期的那样,CR/LF 应该根据 Xml 规范2.11 End-of-Line Handling自动转换为单个 LF

现在,当我通过 Xml 任务加载文件时,它只认为 Unix 文件是有效的,它认为 Windows 版本有超过 4000 个字符。

可以将 Xml 任务配置为按照 Xml 规范工作吗?还是我必须自己转换 CR/LF 行尾然后重新验证?

0 投票
2 回答
1961 浏览

r - R read.table csv,带有经典-mac行尾

我有一个逗号分隔的值文件,当我在 vim 中打开它时,它看起来像这样:

等等。我相信这意味着我的 CSV 仅使用 CR(经典 mac)行尾。R 的 read.table() 函数表面上需要 LF 行结尾,或其一些变体。

我知道我可以预处理文件,这可能就是我要做的。

除了那个解决方案:有没有办法将 CR 文件直接导入到 R 中?例如,write.table() 有一个“eol”参数,可以用来指定输出的行尾——但我没有看到 read.table() 的类似参数(参见http://stat. ethz.ch/R-manual/R-patched/library/utils/html/read.table.html)。

0 投票
4 回答
32012 浏览

visual-studio-2010 - 如何修复整个 VS 解决方案的不一致行尾?

Visual Studio 将在打开文件时检测到不一致的行尾,并且可以选择为该特定文件修复它。但是,如果我想修复解决方案中所有文件的行尾,我该怎么做?

0 投票
1 回答
263 浏览

php - 与 PHP 反射 API 不一致的结果

我有一个在使用 PHP5 反射 API 的 Windows 和 Mac 上都能完美运行的应用程序。

我试图将应用程序部署到 Linux 机器(运行 PHP 5.3.6 的 CentOS 机器 - 生产服务器),却发现该ReflectionMethod::getDocComment()函数没有返回任何内容。我调查了一会儿,发现行尾是潜在的罪魁祸首。

我使用dos2unix服务器上的实用程序将行尾全部更改为 Unix 样式,并且脚本可以正常工作。现在这是奇怪的部分:它只工作一次。我的意思是,返回数据的脚本ReflectionMethod::getDocComment()工作一次,然后(不对磁盘上的文件或代码进行任何修改)它恢复为不工作。

任何帮助或建议将不胜感激。