För att svara på mitt eget inlägg:
KAN komma runt detta genom att läsa binärt, men konverteringen sedan är MYCKET tidskrävande/resurskrävande. Dock kommer åäö med.
Men hade något mer tidseffektivt borde väl finnas?
------------------
Udden.
32 svar · 4 239 visningar · startad av udden
Har en textfil som innehåller "Hej då"
Öppnar jag den med fso.openTextFile så får jag rätt utskrift.
Försöker jag däremot öppna den med:
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open "GET", strURL, False
objXMLHTTP.Send
strReturn = objXMLHTTP.responseText
Set objXMLHTTP = Nothing
Response.Write(strReturn)
Så blir utskriften: Hej d?
Varför blir det såhär?
Är det något jag missat med xmlhttp?
------------------
Udden.
För att svara på mitt eget inlägg:
KAN komma runt detta genom att läsa binärt, men konverteringen sedan är MYCKET tidskrävande/resurskrävande. Dock kommer åäö med.
Men hade något mer tidseffektivt borde väl finnas?
------------------
Udden.
Ingen som vet?
Man måste använda sig av html-koderna (heter det så?) istället för själva bokstäverna:
Å --> &aulm; eller vad det är
Njaoo, om jag utgår från scriptet högst upp på sidan här och hämtar en sida som jag sen skriver ut med response.write Så blir utskriften: Hej d? Alltså i själva sourcekoden.
Ser inte något sätt att fixa till det när det redan är i variabeln?
Eller? Fler ideer?
*puttar på tråden*
Det enda jag kom fram till var en "binär" lösning:
function BinToText(varBinData, intDataSizeInBytes)
const adFldLong = 128
const adVarChar = 200
set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong
objRS.Open
objRS.AddNew
objRS.Fields("txt").AppendChunk(varBinData)
tmp = objRS("txt").Value
objRS.Close
BinToText = tmp
end function
Okej, men hur hämtar man sidan binärt då?
Jaså, ska du veta det med ;)
<%
function BinToText(varBinData, intDataSizeInBytes)
const adFldLong = 128
const adVarChar = 200
set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong
objRS.Open
objRS.AddNew
objRS.Fields("txt").AppendChunk(varBinData)
tmp = objRS("txt").Value
objRS.Close
BinToText = tmp
end function
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www.webforum.nu/showthread.php?s=&postid=397439#post397439", False
objHTTP.setRequestHeader "Content-type","text/html"
objHTTP.Send
strHTML = BinToText(objHTTP.responseBody,35000)
Set objHTTP = Nothing
response.write strHTML
%>
Okej, okej... :)
Läser ni in XML-dokument borde det ju räcka med att ange rätt encoding ( ISO-8859-1 för oss i Sverige ) i process instruktionen xml.
<?xml version="1.0" encoding="ISO-8859-1"?>
:q
Fungerar inte det, kanske man kan sätta det som header?
objHTTP.setRequestHeader "Encoding", "ISO-8859-1"
Kanske fungerar. Det är ju ingen "riktig" header, men man vet ju aldrig. ;)
Det senare kanske skulle fungera... :)
Det är det som jag är mest orolig för att det inte fungerar, eftersom att Encoding inte är en header som normalt skickas till webservers. ;)
Har ni testat alternativ ett? Det är det som borde fungera, eftersom att det anger hur XML-dokumentet ska läsas.
Det är inget XML-dokument...
Då blev det ju lite jobbigare... Tvåan fungerar inte, och jag sökte genom RFC:en för HTTP, det finns inga header-attribut för encoding. Bara något som hette Transfer-Encoding, men det var något annat skumt.
Jo, förresten! Charset! :D
objHTTP.setRequestHeader "Content-Type", "text/html; charset=ISO-8859-1"
Kan fungera.
Provar imorgon! :)
'Been There, Done That'
Jaghar inte fått det där att fungera, men är väldigt öppen för ideer, verkar ju väldigt konstigt tycker jag om det inte skall till att kunna fungera.
Lite "Svenskdiskriminering" på Microsoft där! ;)
(mfl. diskriminerade iofs.)
SPiN skrev:
objHTTP.setRequestHeader "Encoding", "ISO-8859-1"
SPin från Nolltre.. :e det borde vara ISO-8859-4..
Latin 1 (Väseuropa, Latinamerika) - ISO-8859-1
.....
Latin 4 (Skandinavien,Baltikum) - ISO-8859-4
Jag satte aldrig min fot på NollTre, så du måste tänka på nån annan. :)
ISO-8859-1 brukar fungera kanoners, den också. ;)