C#中的ByteArray无法在文本框中显示所有内容

C#中的ByteArray无法在文本框中显示所有内容,c#,pdf,parsing,C#,Pdf,Parsing,我正在分析一个pdf文件…我将数据转换为字节数组,但它不显示完整的文件。。 我不想使用任何lib或softy.. FileStream fs = new FileStream(fname, FileMode.Open); BinaryReader br = new BinaryReader(fs); int pos = 0; int length = (int)br.BaseStream.Length; byte

我正在分析一个pdf文件…我将数据转换为字节数组,但它不显示完整的文件。。 我不想使用任何lib或softy..

        FileStream fs = new FileStream(fname, FileMode.Open);
        BinaryReader br = new BinaryReader(fs);

        int pos = 0;
        int length = (int)br.BaseStream.Length;

        byte [] file = br.ReadBytes(length);

        String text = System.Text.ASCIIEncoding.ASCII.GetString(file);

        displayFile.Text = text;
如果你能提供更多的细节,包括一些代码,最好是一个简短但完整的程序来演示这个问题,这将非常有帮助

我的猜测是,在进行转换时,最终会出现一些包含空字符('\0')的文本,Windows窗体控件将其视为字符串终止符

例如,如果您使用:

label.Text = "hello\0there";
你只会看到“你好”

现在,由于使用错误的编码将字节数组转换为文本,您可能会遇到此问题,但我们无法从您提供的少量信息中获得更多帮助。

如果您能提供更多详细信息,包括一些代码,最好是一个简短但完整的程序来演示此问题,这将非常有帮助

我的猜测是,在进行转换时,最终会出现一些包含空字符('\0')的文本,Windows窗体控件将其视为字符串终止符

例如,如果您使用:

label.Text = "hello\0there";
你只会看到“你好”


现在,由于使用错误的编码将字节数组转换为文本,您可能会遇到这个问题,但我们无法从您提供的少量信息中获得更多帮助。

基于您的代码示例,我想说的是,问题在于您假设PDF文件包含纯ascii文本,而事实并非如此。PDF是一种复杂的格式,有一些库允许您解析它们


快速谷歌搜索:可以读取pdf格式。

根据您的代码示例,我想说的是,问题在于您假设pdf文件包含纯ascii文本,而事实并非如此。PDF是一种复杂的格式,有一些库允许您解析它们


快速谷歌搜索:可以读取pdf格式。

你不能仅仅通过将pdf解释为ASCII来将其转换为文本。您可能很幸运,一些文本实际上是ASCII,但您也可以预期一些非文本内容与ASCII无法区分


而是使用其中一种解析PDF的解决方案。这里有一种使用PDFBox和IKVM的方法:

您不能仅仅通过将PDF解释为ASCII来将其转换为文本。您可能很幸运,一些文本实际上是ASCII,但您也可以预期一些非文本内容与ASCII无法区分

而是使用其中一种解析PDF的解决方案。这里有一种使用PDFBox和IKVM的方法:

即使纯集合也包含大量不可打印、不可显示和控制字符

正如Jon所说,字符串开头的
\0
(NUL)终止.NET中的所有内容。多年前,我有过这种行为的痛苦经历。控制字符如“bell”和“backspace”等会给你有趣的输出。但不要期望听到铃声:P.

即使是纯集合也包含大量不可打印、不可显示和控制字符


正如Jon所说,字符串开头的
\0
(NUL)终止.NET中的所有内容。多年前,我有过这种行为的痛苦经历。控制字符如“bell”和“backspace”等会给你有趣的输出。但是不要期望听到铃声:P.

如果你能展示一些代码片段,那会很有帮助。你是如何解析的?也许你没有读完整的文件?请提供更多信息…如果您能展示一些代码片段,那将非常有用。您如何解析?也许你没有读完整的文件?请提供更多信息…\0不会在.NET中终止字符串-它会在Windows窗体控件中终止它。@Jon:没错,我有在WinForm中使用log4net的经验,文件的日志输出也被
\0
终止。我总是“责怪”.NET,现在我知道了罪魁祸首。\0不是在.NET中终止字符串,而是在Windows窗体控件中终止它。@Jon:你说得对,我有在WinForm中使用log4net的经验,文件的日志输出也被
\0
终止。我总是“责怪”。NET,现在我知道了罪魁祸首。