【发布时间】:2012-08-14 08:08:53
【问题描述】:
我正在编写一个程序来处理特殊的文本文件。其中一些文本文件以 SUB 字符(替代字符。它可能是 0x1A)结尾。如何使用 C# 检测此字符并将其从文本文件中删除?
【问题讨论】:
-
当你说它可能是0x1A - 当你读它时它实际上 U+001A,还是不是?
-
我看不到它是什么。当我在 Notepad++ 中打开这个文件时,它显示为 SUB。我在网上研究了特殊的 SUB 字符,它指出 SUB 是一个特殊的 UNIX 类字符,它是 ASCII 的 26,它是十六进制的 0X1A,它是 Ctrl+Z。但是那我怎么检测 ctrl+z 呢?
-
"Ctrl+Z" 不是字符,它是在键盘上按下。您应该在 binary 文件编辑器中打开该文件,以检查它是否真的是字节 1A。
-
你在说换行符???字符 10??只需 Ctrl+H,进入扩展模式并写入 \n 并在任何地方替换它......
-
从一些“巧妙”构造的文件中删除 0x1A 可能会使文件不可读。很久以前,在一个遥远的星系中,0x1A 被用来表示文本流中的文件结束 (EOF)。后来,有些人在他们的二进制文件上放了一个文本头,用 0x1A 字符将文本与二进制文件分开。文本阅读器会读取并显示文件中的字符,直到遇到 0x1A。最终结果:您可以使用 MSDOS 的“type”命令来显示二进制文件并查看文本标题/描述,而不必费力地穿过屏幕上的大量哔哔声和垃圾字符。