write unicode data to a file

R

raj.sinha

I have to "PUT" data to a Unicode file... a file that has the "FF FE"
mark at the beginning of the file.

How do i do that. What HTTP header do i need to send so that the data
is stored in the Unicode file. Right now when i "PUT" the data it sores

it in a regular file.


Test code below


Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")


' Opens the connection to the remote server.
xml.Open "PUT", "http://135.8.63.61/outlook/save.txt", False


' Try these headers
'xml.setRequestHeader "Charset", "UTF-16"
'xml.setRequestHeader "Charset", "text/html; charset=UTF-16"


' Actually Sends the request and returns the data:
xml.Send "hello"


If xml.Status >= 400 And xml.Status <= 599 Then
Response.Write "Error Occurred : " & xml.Status & " - " &
xml.statusText
Else
Response.Write xml.ResponseText
End If


Set xml = nothing
 
J

Joerg Jooss

Thus wrote (e-mail address removed),
I have to "PUT" data to a Unicode file... a file that has the "FF FE"
mark at the beginning of the file.

How do i do that. What HTTP header do i need to send so that the data
is stored in the Unicode file. Right now when i "PUT" the data it
sores

it in a regular file.

Test code below

Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")

' Opens the connection to the remote server.
xml.Open "PUT", "http://135.8.63.61/outlook/save.txt", False
' Try these headers
'xml.setRequestHeader "Charset", "UTF-16"
'xml.setRequestHeader "Charset", "text/html; charset=UTF-16"
' Actually Sends the request and returns the data: xml.Send "hello"

If xml.Status >= 400 And xml.Status <= 599 Then
Response.Write "Error Occurred : " & xml.Status & " - " &
xml.statusText
Else
Response.Write xml.ResponseText
End If
Set xml = nothing

If you ask this question in a .NET newsgroup one has to wonder why you don't
use .NET? Here's a simple implementation:

public static void DoPut(Uri uri, string fileName, Encoding encoding) {
WebClient client = new WebClient();
using(Stream istream = new FileStream(fileName, FileMode.Open))

using(Stream ostream = client.OpenWrite(uri, "PUT")) {
byte[] buffer = new byte[4096];
int bytes;
while((bytes = istream.Read(buffer, 0, buffer.Length)) > 0) {
ostream.Write(buffer, 0, bytes);
}
}
}

To PUT a Unicode (UTF-16LE) file, call
DoPut(new Uri("http://host/path/to/file.txt"), @"X:\Path\To\File.txt", Encoding.Unicode);

Cheers,
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top