RockLife Rock Metal Forum
Would you like to react to this message? Create an account in a few clicks or log in to continue.



 
AnasayfaAnasayfa  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 XmlHTTP Türkçe Karakter Problemi

Aşağa gitmek 
YazarMesaj
Tatlı-Cadı
Özel Üye
Özel Üye
Tatlı-Cadı


Mesaj Sayısı : 798
Başarı Puanı : 2236
Rep Puanı : 1
Kayıt tarihi : 28/05/09
Yaş Yaş : 33
Nerden : Almanya
İş/Hobiler İş/Hobiler : Golf

XmlHTTP Türkçe Karakter Problemi Empty
MesajKonu: XmlHTTP Türkçe Karakter Problemi   XmlHTTP Türkçe Karakter Problemi Icon_minitimePaz Ekim 24, 2010 8:45 am

Bu konuda çok fazla soru sorulduğu için makale olarak yazmakta fayda gördüm.
XmlHTTP ile veri çektiğiniz zaman türkçe karakter ler düzgün çıkmamaktadır.Bunun nedeni veriyi alırken "text" yöntemi ile alınıyor olması.Bunun yerine "Body" biçiminde alıcaz.Fakat bu veriyi ekrana yazdırırken sadece ? çıktığını görürsünüz.Bunun nedeni aldığınız verinin Binary olmasıdır.Bu binary'yi bir fonksiyon ile Text e çevirebilirsiniz.Bu şekilde kullanılırsa XmlHTTP de Türkçe karakter problemi ortadan kalkmaktadır.Çok fazla uzatmadan örnekle açıklayalım.

Normalde XmlHTTP ile veri alınırken :

<%
strURL = "http://www.asprehberi.net/"
Dim objXmlHttp
Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXmlHttp.Open "GET" , strURL , false

objXmlHttp.sEnd

strHTML = objXmlHttp.ResponseText
%>

gibi bir kod kullanırız.Bu kod ile veri alırsanız Türkçe karakterlerinizin ? şeklinde çıktığını görürsünüz.Bunun yerine BinaryToText isminde bir fonksiyon kullanacağız.

Fonksiyonumuz aşağıdadır.

******************** Fonksiyon Başlangıcı ********************

<%
Private 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
%>

******************** Fonksiyon Bitişi ********************


Bu fonksiyonu kullanmanız yeterli olmuyacaktır.Veri alırken üstte aldığımız gibi "ResponseText" yerine "ResponseBody" şeklinde alınması gerekiyor.Hepsini tek bir kod ile birleştirmek gerekirse


******************** Örnek Kod Başlangıç ********************
<%
strURL = "http://www.asprehberi.net/"
Dim objXmlHttp
Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXmlHttp.Open "GET" , strURL , false

objXmlHttp.sEnd

strHTML = objXmlHttp.ResponseBody

Private 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


Response.Write BinaryToString(strHTML)
%>

******************** Örnek Kod Bitiş ********************

En son yazılırken dikkat edeceğiniz üzere fonksiyonu kullanarak bu veriyi ekrana yazdırdık.Eğer kullanmaz iseniz bütün karakterleri ? şeklinde görürsünüz.
Bu şekilde XmlHTTP Türkçe karakter problemi ortadan kalkmaktadır.İyi kullanımlar.
Sayfa başına dön Aşağa gitmek
https://rocklife.forum.st
 
XmlHTTP Türkçe Karakter Problemi
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Türkçe Dil ve Karakter sorunu
» Sms neden 160 karakter ?
» rastgele 32-karakter (128-bit) uniq md5 katakterler üretmek
» Gün İsimlerini Türkçe Gösterme
» Sachmalama Türkçe De Neymiş !.

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
RockLife Rock Metal Forum :: Herşey Burda :: Webmaster&Webtasarım :: Programlama :: ASP , HTML , CSS-
Buraya geçin: