我遇到了一个我以前见过的问题。问题很简单,我需要向一个方法发送两个不同的字符串,以验证字符串是否相同。
其中一个字符串看起来像这样
样本1
JVBERi0xLjQNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFu
ZyhkYS1ESykgL1N0cnVjdFRyZWVSb290IDU3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4v
第二个看起来像
示例2 ZyhkYS1ESykgL1N0cnVjdFRyZWVSb290IDU3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4vZyhkYS1ESykgL1N0cnVjdFRyZWVSb290IDU3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4v
实际字符串是压缩到base64的PDF文档(这只是其中的一部分)
我尝试将样本1带入记事本++并说出显示所有特殊字符,它在每行末尾显示CRLF。
现在我需要让样本2看起来像样本1,所以我需要将文件读入相同的编码,这可能吗?
所以总结一下这就是我想做的事情
EDIT / ADD:
我想要的是那个 1.拿一个pdf 2.将其转换为使用cr / lf编码的base64编码 3.在另一个库中的验证方法中,需要将其验证为此格式。
答案 0 :(得分:0)
好吧,我没有找到任何创建CR / LF分割的好方法
byte[] bytes = System.IO.File.ReadAllBytes(@"C:\Testdata\SSVALID.pdf");
string temp_inBase64 = Convert.ToBase64String(bytes);
string returnString = "";
int maxLenght = 76;
int counts = temp_inBase64.Length / maxLenght;
for (int i = 0; i < counts; i++)
{
returnString += temp_inBase64.Substring((i * 76), 76);
returnString += "\r\n";
}
returnString += temp_inBase64.Substring(76 * counts, temp_inBase64.Length - (76 * counts));