<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hi guys<br>
<br>
Thanks for your suggestions. <br>
<br>
Todd, Joylon is %100 right. The StringList was added as a debug
mechanism. <br>
<br>
The issue is that I create an XML (Utf-8 so I can deal with
foreign languages). When I load back in the XML I am getting
errors in my code (which has worked fine prior to rebuilding in
Xe2). I opened the xml in the Edge browser (because I like the
way XML is displayed) and noted what looked like corruption in the
Mime text of the images. Opening the XML in Notepad++ showed
corruption (overwritten characters and I couldn't arrow through
them). So I assumed the issue was with the Mime text. <br>
<br>
After Joylon and Peter's suggestions about the BOM preamble I had
another look and they are right. The only difference is the
preamble. I knew about this but had assumed it not to be an issue
as my XML has the preamble too and only the Mime appears corrupt.
However I have just re tested importing the XML file and if I
ignore the error message (changed my code to keep going) the
images are loading and displaying correctly.<br>
<br>
I now thing that<br>
<br>
a) The mime is correct <br>
b) Edge browser has trouble displaying long string text on a
single line<br>
c) There is some sort of bug in Notepad++ that causes problems on
Utf-8 BOM encoded text files with long single line files<br>
d) the problem is with another (none Mime field in my file)<br>
<br>
Thanks for all your help, I spent ages on this but was getting
tripped up by false assumptions.<br>
<br>
Cheers<br>
Rob<br>
<br>
<br>
<br>
<br>
On 10/08/2016 8:37 AM, Jolyon Direnko-Smith wrote:<br>
</div>
<blockquote
cite="mid:CALXexOoTNo-qzj4Gea-M1+sThq65MdghOeOppk59sgDwv6vYZQ@mail.gmail.com"
type="cite">
<div dir="ltr">@Todd - looking at the code I suspect that the
stringlist is in there as a temporary facility to dump the
encoded data to a file for inspection/diagnostics (the function
returns the encoded string as it's result as well as writing it
out to a file using a string list for convenience).<br>
<br>
I think in this case, the BOM behaviour of a string list has
caused a bit of Heisenbergnostics - the thing observing the
thing has changed the thing. :)<br>
<br>
Using a file/string stream to output the resulting string might
have avoided introducing the BOM complication, but if this is a
temporary diagnostic facility, and if it is the BOM which is the
problem, then just turning off the BOM facility on the string
list does the job just as nicely.<br>
<br>
:)</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 9 August 2016 at 18:35, Todd Martin
<span dir="ltr"><<a moz-do-not-send="true"
href="mailto:todd.martin.nz@gmail.com" target="_blank">todd.martin.nz@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<p dir="ltr">Why are you using a TStringlist at all?</p>
<p dir="ltr">If you're encoding to Base64, encoding to UTF8
is meaningless.</p>
<span class="HOEnZb"><font color="#888888">
<p dir="ltr">Todd</p>
</font></span>
<div class="HOEnZb">
<div class="h5">
<div class="gmail_extra"><br>
<div class="gmail_quote">On 9 Aug 2016 5:54 p.m.,
"Peter Ingham" <<a moz-do-not-send="true"
href="mailto:ping_delphilist@3days.co.nz"
target="_blank">ping_delphilist@3days.co.nz</a>>
wrote:<br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<p>If you look at the output file in a hex
editor, what do you see?</p>
<p>If the first 3 bytes are <code>0xEF,0xBB,0xBF,
then that is a "Byte Order Mark".</code></p>
<p><code>UTF-8 is a method for encoding UNICODE
characters using 8-Bit Bytes.</code></p>
<p><code>A file containing 7-Bit ASCII
(high-order bit of every character zero),
when converted to UTF-8 is likely to look</code><code></code>
very similar. For anything else, all bets are
off. Treating them as universally equivalent
is asking for trouble.<br>
</p>
<p>Many text editors will look for Byte Order
marks (of varying types) and use them without
displaying them (e.g: see <a
moz-do-not-send="true"
href="https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8"
target="_blank">https://en.wikipedia.org/wiki/<wbr>Byte_order_mark#UTF-8</a>).</p>
<p><br>
</p>
<p>Regards<br>
</p>
<div>On 9/08/2016 5:01 p.m., Robert Martin
wrote:<br>
</div>
<blockquote type="cite">
<pre>Hi guys
I have been struggling to get some basic Mime encoding working, I have
the following code which I use to Mime64 Encode a picture contained in a
TImage component....
Base64 := TMime64.create;
try
MemoryStream := TMemoryStream.Create;
MemoryStream.Position := 0;
Image.Picture.Graphic.SaveToSt<wbr>ream(MemoryStream);
ReportImage.ImageMime :=
Base64.Encode_New(MemoryStream<wbr>);
.....
Function shown below...
function TMime64.Encode_New(aSourceStre<wbr>am: TMemoryStream): String;
var
IdEncoderMIME : TIdEncoderMIME;
Sl : TStringList;
begin
Result := '';
try
IdEncoderMIME := TIdEncoderMIME.Create(nil);
sl := TStringList.Create;
try
aSourceStream.Position := 0;
Result := IdEncoderMIME.EncodeStream(aSo<wbr>urceStream);
sl.Text := Result;
sl.SaveToFile('d:\d\a.txt', TEncoding.UTF8);
finally
IdEncoderMIME.Free;
sl.Free;
end;
except
on E : Exception do begin
raise EMimeError.Create(E.Message);
end;
end;
end;
The issue is that when I try to save the results in a UTF8 formatted
file (the destination is to be a UTF-8 formatted XML file), there are
'bad' characters in the file which are invisible in Notepad++ but are
present.
If I save without specifying the file encoding (
sl.SaveToFile('d:\d\a.txt') instead of sl.SaveToFile('d:\d\a.txt',
TEncoding.UTF8) ) I have what appears to be a clean ASCII file. My
understanding is that ASCII characters have the same byte value (0-127)
in an ASCII formatted file or a UTF-8 formatted file so I don't
understand why the values would change.
Any suggestions.
p.s. I have to be able to save the file as UTF-8 because that is what
the destination XML is encoded in. Currently it is 'corrupt' because of
the 'bad' characters.
p.p.s TIdEncoderMIME.EncodeStream returns a String. I am using Delphi Xe2.
p.p.p.s I know it is something stupid I am doing !
Thanks
Rob
______________________________<wbr>_________________
NZ Borland Developers Group - Delphi mailing list
Post: <a moz-do-not-send="true" href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a>
Admin: <a moz-do-not-send="true" href="http://delphi.org.nz/mailman/listinfo/delphi" target="_blank">http://delphi.org.nz/mailman/l<wbr>istinfo/delphi</a>
Unsubscribe: send an email to <a moz-do-not-send="true" href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.<wbr>net.nz</a> with Subject: unsubscribe
</pre>
</blockquote>
</div>
______________________________<wbr>_________________
NZ Borland Developers Group - Delphi mailing list
Post: <a moz-do-not-send="true" href="mailto:delphi@listserver.123.net.nz" target="_blank">delphi@listserver.123.net.nz</a>
Admin: <a moz-do-not-send="true" href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/l<wbr>istinfo/delphi</a>
Unsubscribe: send an email to <a moz-do-not-send="true" href="mailto:delphi-request@listserver.123.net.nz" target="_blank">delphi-request@listserver.123.<wbr>net.nz</a> with Subject: unsubscribe
</blockquote></div></div>
</div></div>
______________________________<wbr>_________________
NZ Borland Developers Group - Delphi mailing list
Post: <a moz-do-not-send="true" href="mailto:delphi@listserver.123.net.nz">delphi@listserver.123.net.nz</a>
Admin: <a moz-do-not-send="true" href="http://delphi.org.nz/mailman/listinfo/delphi" rel="noreferrer" target="_blank">http://delphi.org.nz/mailman/<wbr>listinfo/delphi</a>
Unsubscribe: send an email to <a moz-do-not-send="true" href="mailto:delphi-request@listserver.123.net.nz">delphi-request@listserver.123.<wbr>net.nz</a> with Subject: unsubscribe
</blockquote></div>
</div>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre wrap="">_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: <a class="moz-txt-link-abbreviated" href="mailto:delphi@listserver.123.net.nz">delphi@listserver.123.net.nz</a>
Admin: <a class="moz-txt-link-freetext" href="http://delphi.org.nz/mailman/listinfo/delphi">http://delphi.org.nz/mailman/listinfo/delphi</a>
Unsubscribe: send an email to <a class="moz-txt-link-abbreviated" href="mailto:delphi-request@listserver.123.net.nz">delphi-request@listserver.123.net.nz</a> with Subject: unsubscribe</pre>
<fieldset class="mimeAttachmentHeader"></fieldset>
<p class="" avgcert""="" color="#000000" align="left">No virus found in this message.
Checked by AVG - <a moz-do-not-send="true" href="http://www.avg.com">www.avg.com</a>
Version: 2016.0.7690 / Virus Database: 4633/12780 - Release Date: 08/09/16</p>
</blockquote><p>
</p></body></html>