Saving Encoding in XML file with MemoryStream

xpotau
Member Posts: 2
Hi,
I'm having a encoding problem sending XMLHttpRequests to a Domino site.
The connection works nice except when there are special characters in NAV, then the client is receiving the special characters in what looks like ANSII. I am setting the request as UTF8 though and do not see how to force the request to be encoded in UTF8. The content of the blob field "QueueHeader.Request" shows the xml content fine when I export it to a text file, although the xml declaration does not show the charset as utf-8, so it seems it not saving it.
I'd appreciate some input, thanks!
Here my code snippet:
I'm having a encoding problem sending XMLHttpRequests to a Domino site.
The connection works nice except when there are special characters in NAV, then the client is receiving the special characters in what looks like ANSII. I am setting the request as UTF8 though and do not see how to force the request to be encoded in UTF8. The content of the blob field "QueueHeader.Request" shows the xml content fine when I export it to a text file, although the xml declaration does not show the charset as utf-8, so it seems it not saving it.
I'd appreciate some input, thanks!
Here my code snippet:
XMLHttpRequest := XMLHttpRequest.Create(WebServiceURL); XMLHttpRequest.Method('POST'); XMLHttpRequest.ContentType('text/xml;charset=utf-8'); XMLHttpRequest.Headers.Add('SOAPAction',QueueHeader.ProcessType); XMLHttpRequest.KeepAlive(TRUE); QueueHeader.CALCFIELDS("Xml Request"); QueueHeader."Xml Request".CREATEINSTREAM(myInStream,TEXTENCODING::UTF8); vBigText.READ(myInStream); Bytes := Encoding.UTF8.GetBytes(vBigText); XMLHttpRequest.ContentLength(Bytes.Length); XMLHttpRequest.Proxy(); MemoryStream := MemoryStream.MemoryStream(); MemoryStream := XMLHttpRequest.GetRequestStream; MemoryStream.Write(Bytes,0,Bytes.Length); MemoryStream.Close; MemoryStream.Dispose; XMLHttpResponse := XMLHttpRequest.GetResponse; XMLDoc := XMLDoc.XmlDocument(); XMLDoc.Load(XMLHttpResponse.GetResponseStream); XMLHttpResponse.Close; XMLDoc.Save(Response);
1
Answers
-
Sorry forgot to say all this is working on dotnet not automations as it needs to run on nas services.0
-
utf-8 is the default encoding for an XML Document, so if no encoding specification is there, the reader must assume uft-8. The question is, whether the document is actually utf-8 encoded in the blob0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions