Character encoding 找不到base64编码的字符串

Character encoding 找不到base64编码的字符串,character-encoding,salesforce,apex-code,Character Encoding,Salesforce,Apex Code,我有一个MS Doc文件,我已将其从Blob转换为Base64编码字符串。其中包含一个字符串: 我有base64编码字符串: 但是当我在上面从blob数据转换的字符串中搜索它时,我无法找到它 你能告诉我我做错了什么吗: Blob beforeblob1 = Blob.valueOf(vDovMerge.Merge_Text__c); String vDovMergeBlob = EncodingUtil.base64Encode(beforeblob1 ); String v

我有一个MS Doc文件,我已将其从Blob转换为Base64编码字符串。其中包含一个字符串:

我有base64编码字符串:

但是当我在上面从blob数据转换的字符串中搜索它时,我无法找到它

你能告诉我我做错了什么吗:

Blob beforeblob1 = Blob.valueOf(vDovMerge.Merge_Text__c);
    String vDovMergeBlob = EncodingUtil.base64Encode(beforeblob1 );

    String v = EncodingUtil.base64Encode(vDoc.Body);
    system.debug('****v****'+v);
    Blob beforeblob = Blob.valueOf('<z></z>');
    String rep = EncodingUtil.base64Encode(beforeblob );
    system.debug('****rep****'+rep );
    v = v.replace(rep ,vDovMergeBlob );
    system.debug('****v****'+v);
Blob beforeb1=Blob.valueOf(vDovMerge.Merge\u Text\uu c);
字符串vDovMergeBlob=EncodingUtil.base64Encode(beforeblob1);
字符串v=EncodingUtil.base64Encode(vDoc.Body);
系统调试('*****v***'+v);
Blob beforeblob=Blob.valueOf(“”);
String rep=EncodingUtil.base64Encode(beforeblob);
系统调试('**rep***'+rep);
v=v.更换(代表,vDovMergeBlob);
系统调试('*****v***'+v);

Base64编码将3字节的输入转换为4字节的输出。因此,当只编码
时,它肯定会作为要编码的块的第一个字节开始。当将其作为较大数据块的一部分进行编码时,它可能会以要编码的第二个或第三个字节开始,从而产生完全不同的输出-这甚至取决于块周围的数据

例如: 假设ASCII编码
编码
会导致
PHo+PC96Pg==

编码
a
会导致
YTx6Pjwvej4=

编码
aa
会导致
YWE8ej48L3o+

编码
aaa
会导致
YWFhPHo+PC96Pg==
再次包含原始编码,因为它从3字节边界开始


因此,搜索base64编码数据的唯一方法是将其视为一个位流,搜索
的位模式,而不考虑字节边界-对我来说听起来不是很有趣:-(

嗨,谢谢你的深入了解..但是我如何才能在blob上获得for循环,因为Apex salesforce中没有字节数据类型!!