Zoque.Forum
»
XMLHTTP Türkçe Karakter Sorunu
|
| Sunucu Tabanlı Programlama (Server Side) Perl/CGI, PHP, ASP, JSP, .NET ve diğer programlama dilleri hakkındaki sorularınıza, paylaşmak istediklerinize ve örnek kodlara bu alanda yer verebilirsiniz. |
![]() |
|
|
LinkBack | Seçenekler |
|
|
#1 (permalink) |
|
Üyelik Tarihi: 13.07.2000
Yer: LND
Mesaj: 4,275
|
XMLHTTP Türkçe Karakter Sorunu
XMLHTTP ile herhangi bir siteden veri çektiğimde Türkçe karakterler bozuıluyor.
Her yeri aradım (MSND, web, iy, zoque, aspnerdir vs.) ancak bu konuda bir cevap bulamadım. Esas sorun gelen karakterlerin ? işaretine dönüyor olması yani her bilinmeyen karakter bir (?)soru işareti olarak gözüküyor. Basit şekilde kod şöyle Kod:
Set xobj = server.CreateObject("Microsoft.XMLHTTP") xobj.Open "GET", "http://www.zoque.net", false xobj.Send sayfa = xobj.ResponseText Response.Write sayfa Bir de XMLHTTP için adam akıllı referans babında bir site / doküman da bilen varsa sevinirim.
__________________
FERRUH.MAVİTUNA - İnanmıyorum, yeni site! |
|
|
|
|
|
#3 (permalink) |
|
Üyelik Tarihi: 05.11.2005
Yer: Istanbul
Yaş: 28
Mesaj: 486
|
Re: XMLHTTP Türkçe Karakter Sorunu
Alıntı kaynak adresi hatırlamıyorum!
Kod:
Function BinaryToString(Binary) Dim cl1, cl2, cl3, pl1, pl2, pl3 Dim L cl1 = 1 cl2 = 1 cl3 = 1 L = LenB(Binary) Do While cl1<=L pl3 = pl3 & Chr(AscB(MidB(Binary,cl1,1))) cl1 = cl1 + 1 cl3 = cl3 + 1 If cl3>300 Then pl2 = pl2 & pl3 pl3 = "" cl3 = 1 cl2 = cl2 + 1 If cl2>200 Then pl1 = pl1 & pl2 pl2 = "" cl2 = 1 End If End If Loop BinaryToString = pl1 & pl2 & pl3 End Function Kod:
sayfa = BinaryToString(xobj.ResponseBody) |
|
|
|
|
|
#4 (permalink) | |
|
Üyelik Tarihi: 23.07.2007
Yer: kocaeli
Yaş: 28
Mesaj: 5
|
Re: XMLHTTP Türkçe Karakter Sorunu
xobj.open .... altına
" xobj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-9"); " yazarak denermisin. Alıntı:
|
|
|
|
|
|
|
#5 (permalink) |
|
Üyelik Tarihi: 27.05.2007
Yer: Kayseri
Mesaj: 13
|
Re: XMLHTTP Türkçe Karakter Sorunu
profiteror;
yazmış olduğun kodu denedim yalnız sayfa hata verdi. Ben az ASP biliyorum ama ASP de sonu ; işareti ile biten bir cümle görmemiştim. Mantıklı gelmedi bana. Yine de ilgin için teşekkür ederim. arsende; vermiş olduğun fonksiyonu denedim ve sağlıklı biçimde çalıştı. Çok teşekkür ederim. Not : daha önce de denemiştim, galiba yanlış uygulamışım (: |
|
|
|
|
|
#7 (permalink) |
|
Üyelik Tarihi: 24.07.2007
Yer: Bursa
Yaş: 21
Mesaj: 15
|
Re: XMLHTTP Türkçe Karakter Sorunu
@arsende verdiğin kod için teşekkürler çalışıyor. Karakter sorun oluşturmadan çekebiliiyor.
ben JavaScript kullandım. HTML Code:
<script lianguage="vbscript"> Function BinaryToString(Binary) Dim cl1, cl2, cl3, pl1, pl2, pl3 Dim L cl1 = 1 cl2 = 1 cl3 = 1 L = LenB(Binary) Do While cl1<=L pl3 = pl3 & Chr(AscB(MidB(Binary,cl1,1))) cl1 = cl1 + 1 cl3 = cl3 + 1 If cl3>300 Then pl2 = pl2 & pl3 pl3 = "" cl3 = 1 cl2 = cl2 + 1 If cl2>200 Then pl1 = pl1 & pl2 pl2 = "" cl2 = 1 End If End If Loop BinaryToString = pl1 & pl2 & pl3 End Function </script> <button onclick="alert(BinaryToString(xmlhttp.ResponseBody))">Kaynağı getir.</button> Denemeye çalıştığım tam kod da bu: HTML Code:
<script> function getElement(psID) { if(document.all) { return document.all[psID]; } else { return document.getElementById(psID); } } var xmlhttp; function icerikYukle(adres,parametre) { frames["icerik"].document.body.innerHTML="<h1>Yükleniyor...<\/h1>" var adres, zaman1, zaman2; zaman1 = new Date(); xmlhttp=null // code for Mozilla, etc. if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest() } // code for IE else if (window.ActiveXObject) { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP") } if (xmlhttp!=null) { xmlhttp.onreadystatechange=state_Change; xmlhttp.open("GET",adres,false) xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-9"); xmlhttp.setRequestHeader("User-Agent", "MyCustomUser"); xmlhttp.send(parametre) } else { alert("Your browser does not support XMLHTTP.") } zaman2=new Date(); getElement('zaman').innerHTML=window.status = zaman2.getMilliseconds()-zaman1.getMilliseconds() + " ms yüklendi."; } say=1; function state_Change() { // if xmlhttp shows "loaded" //frames["icerik"].document.body.innerHTML=xmlhttp.readyState+'\n'+xmlhttp.status; if (xmlhttp.readyState==4) { // if "OK" if (xmlhttp.status==200) { } else { frames["icerik"].document.body.innerHTML+="<h1><br>Durum:"+xmlhttp.status+"<br>"+say+".deneme: XML verisini aktarırken sorun oluştu</h1><br>";say++; } frames["icerik"].document.body.innerHTML=BinaryToString(xmlhttp.ResponseBody) getElement("tarea").value=frames["icerik"].document.body.innerHTML; getElement("arama").value=xmlhttp.getAllResponseHeaders() } } function handleError() { alert("hata var") return true; } window.onerror = handleError; </script> <script language="vbscript"> Function BinaryToString(Binary) Dim cl1, cl2, cl3, pl1, pl2, pl3 Dim L cl1 = 1 cl2 = 1 cl3 = 1 L = LenB(Binary) Do While cl1<=L pl3 = pl3 & Chr(AscB(MidB(Binary,cl1,1))) cl1 = cl1 + 1 cl3 = cl3 + 1 If cl3>300 Then pl2 = pl2 & pl3 pl3 = "" cl3 = 1 cl2 = cl2 + 1 If cl2>200 Then pl1 = pl1 & pl2 pl2 = "" cl2 = 1 End If End If Loop BinaryToString = pl1 & pl2 & pl3 End Function </script> <table width="100%"> <tr> <td><input id="adrese" style="border:solid 1 green;" value="http://www.yahoo.com" style="width:400"></td> <td><button onclick="icerikYukle(getElement('adrese').value,'')">Sayfayı Getir</button> <button onclick="getElement('tarea').value=BinaryToString(xmlhttp.ResponseBody)">Kaynağı Aktar</button> <button onclick="getElement('tarea').value=frames['icerik'].document.body.innerText">Sayfadaki Metni al</button> <span id="zaman"></span> </td> </tr> <tr><td><textarea id="tarea" style="width:450;height:450;overflow:auto"></textarea></td> <td> <iframe name="icerik" style="width:500;height:450;"></iframe> </td></tr> </table> Mesaj daddyguy tarafından 05.08.2007 (09:57) yeniden düzenlendi.. |
|
|
|
|
|
#8 (permalink) |
|
Üyelik Tarihi: 24.07.2007
Yer: Bursa
Yaş: 21
Mesaj: 15
|
Hata: İzin verilmiyor
Kodu bilgisayarımda çalıştırabiliyordum. fakat internete yükeleyip siteden çalıştırmak istediğimde
"İzin verilmiyor" diye br JavaScript hatası çıktı. site burada http://bektasaykut.googlepages.com/kaynakcek.html |
|
|
|
|
|
#9 (permalink) |
|
Üyelik Tarihi: 23.10.2005
Yer: Eregli
Yaş: 21
Mesaj: 60
|
Re: XMLHTTP Türkçe Karakter Sorunu
guvenlik nedeniyle standart olarak JavaScript XMLHTTP ile uzaktaki sunucuya veri yollanamiyor, local dosyalara istek yapilabiliyor.
arka planda, bir PHP/ASP scriptine veri yollayip ondan donen veriyi ekrana basabilirsiniz.
__________________
http://www.benzinliktekiadam.com |
|
|
|
Zoque'a hoşgeldiniz!