问题标签 [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.
c++ - 使用 istreambuf_iterator 进行奇怪的行结束转换(CR、LF、CRLF)(ifstream(..., ios::binary))
我正在 MSVC++2010 中编写 CRC32 例程,需要以二进制模式逐字节读取文件。
我正在使用ifstream
and istreambuf_iterator
,它通常可以工作,但它对行尾做了一些奇怪的事情。
例如,如果我有一个包含内容的文件
我的程序的输出是
所以基本上,它用 CR 替换了最后一个 LF。奇怪的。
如果我有
它是
所以它交换了CRLF!当文件中有更多内容时,它也会交换它们。
有什么解决方法吗?我想为此坚持使用 C++,实际上我想读取二进制文件而不解释任何行尾(我认为只istream_iterator
会这样做)!
为了完整起见,我的测试代码是这样的,改编自pyCRC:
python - 这个 Python 语句的含义是什么?
更具体地说,我不确定紧随其后的“%”和“\”符号应该是什么意思:
这个返回语句是否被认为是一行代码?因为我最初认为“\”是为了将似乎过长的行分成两部分,以提高可读性并避免回绕。
另外,我这里的表格反映了我的代码中的内容。说 '(self.id, a, b, c, d, e, f)' 的部分确实比 return 语句的开头更远了一次。
基本上,该语句等效于:
在这个没有“\”涉及....
line-endings - 不同的行尾背后有什么原因吗?
为什么在不同操作系统中编写的文档具有不同的行尾字符?这背后是否有任何技术原因,或者创作者只是因为他们想要而放置了不同的角色。
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")
c++ - 当它们进入`std::stringstream`时,我可以去掉回车吗?
我想std::stringstream
为我去掉那个回车(并且不想复制和修改segment
)。
我该怎么办?我本以为无论如何都会发生这种情况,在 Linux 上,对于文本模式的流......但也许这种机制是在文件流的逻辑中。
unix - 如何确保我的所有源文件都保持 UTF-8 和 Unix 行结尾?
我正在寻找一些适用于 Linux 的命令行工具,它们可以帮助我检测并将文件从iso-8859-1和windows-1252等字符集转换为utf-8以及从 Windows 行尾转换为 Unix 行尾。
我需要这个的原因是我正在通过 SFTP 使用 Windows 上的编辑器(如 Sublime Text)在 Linux 服务器上处理项目,这些编辑器不断地搞砸这些事情。现在我猜我的文件大约有一半是utf-8,其余的是iso-8859-1和windows-1252因为看起来 Sublime Text 只是在我保存文件时选择文件包含的字符集。即使我在选项中指定默认行结尾是LF,行结尾总是 Windows 行结尾,所以我的文件中大约有一半有LF,一半是CRLF。
所以我至少需要一个工具来递归地扫描我的项目文件夹并提醒我有LF行结尾偏离utf-8的文件,这样我就可以在将更改提交到 GIT 之前手动修复它。
任何关于该主题的评论和个人经验也将受到欢迎。
谢谢
编辑:我有一个临时解决方案,我使用tree
并file
输出有关我项目中每个文件的信息,但这有点不稳定。如果我不包括该-i
选项,file
那么我的很多文件都会得到不同的输出,例如ASCII C++ 程序文本和HTML 文档文本和英文文本等:
但是,如果我确实包含-i
它,它不会向我显示行终止符:
另外为什么它显示charset=us-ascii而不是utf-8?什么是text/x-c++?有没有一种方法可以只输出charset=utf-8
每个line-terminators=LF
文件?
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 行尾然后重新验证?
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)。
visual-studio-2010 - 如何修复整个 VS 解决方案的不一致行尾?
Visual Studio 将在打开文件时检测到不一致的行尾,并且可以选择为该特定文件修复它。但是,如果我想修复解决方案中所有文件的行尾,我该怎么做?
php - 与 PHP 反射 API 不一致的结果
我有一个在使用 PHP5 反射 API 的 Windows 和 Mac 上都能完美运行的应用程序。
我试图将应用程序部署到 Linux 机器(运行 PHP 5.3.6 的 CentOS 机器 - 生产服务器),却发现该ReflectionMethod::getDocComment()
函数没有返回任何内容。我调查了一会儿,发现行尾是潜在的罪魁祸首。
我使用dos2unix
服务器上的实用程序将行尾全部更改为 Unix 样式,并且脚本可以正常工作。现在这是奇怪的部分:它只工作一次。我的意思是,返回数据的脚本ReflectionMethod::getDocComment()
工作一次,然后(不对磁盘上的文件或代码进行任何修改)它恢复为不工作。
任何帮助或建议将不胜感激。