【问题标题】:How to Clean Base64 File of Carriage Returns and Line feeds?如何清理回车和换行的 Base64 文件?
【发布时间】:2019-12-20 14:56:24
【问题描述】:

我有一个 base64 文件,需要先清除回车符和换行符,然后才能将其解码为图像文件。如何正确清洁?

以下是部分文字:

我尝试删除\n\r 的所有实例,但是当我对其进行解码时,似乎检测到PNG 文件类型,但图像并未仅显示文本文件的某些部分。我还尝试使用\n, \r, \N\R 进行清洁,但没有奏效。我想知道我是否错过了什么。

这是我解码后得到的结果:

【问题讨论】:

  • “/n”还是“\n”?反斜杠 ("\") 是转义序列。你从哪里得到文件? Base64 的原始规范要求每 76 个字符换行。这是这些换行符的来源,还是其他原因?您实际上是如何尝试删除换行符的?
  • 对不起。应该是 \n 而不是 /n。感谢您指出这一点。
  • 该文件是我正在测试的软件的输出。我被告知要删除标题,然后从回车和换行符中清除它。之后,解码它,我应该能够看到我用软件创建的相同图像文件

标签: text base64 png decode


【解决方案1】:

要删除新行,您可以在终端中使用以下命令:

tr -d '\n' < base64.txt > base64_new.txt 

这将创建一个没有换行符的新文件。

【讨论】:

  • 嗨,我已经用一张照片更新了帖子,以显示文件在我的屏幕上的显示方式。你的意思是我将“base64.txt”替换为我要转换的base64文件的文件名,那么下一个文件名是新的“清理”文件?
  • 终于搞定了。谢谢!最初我认为括号意味着它是一个占位符。原来它是命令的一部分。
【解决方案2】:

您必须从 base64 文件中删除“\r\n”。

tr -d "\r\n" < ~/base64.txt > ~/base64_no_endlines.txt

【讨论】:

  • 嗨,我已经用一张照片更新了帖子,以显示文件在我的屏幕上的显示方式。我在文件中找不到“\r\n”的确切实例。
  • 回车在 Linux 上是 '\n',在 Windows 上是 '\r\n'。除非您将文本编辑器设置为显示它们,否则它们是不可见的字符。您的文本编辑器告诉您有 13 行,标题是“dataimage/pngbase64”
  • 您获得的有趣信息。我想这解释了为什么我以不同的方式查看文件。谢谢!
猜你喜欢
  • 2018-08-03
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多