ASP Rehberi , ASPRehberi.Net - ASP ve ASP.NET Konuları , Scriptleri , Hosting , Programlar , Araçlar

 # 10 Mayıs 2008, Cumartesi
 
 #  Kategoriler » ASP » Makaleler
 

XmlHTTP Türkçe Karakter Problemi Bu içeriğin puanı : 4,2 4042 Görüntülenme
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.
Sorularınızı forumlarda bizimle paylaşabilirsiniz.
 Telif : Serdar Toros | Eklenme : 26 Nisan 2005, Salı
 
 

Bu içerik hakkında 9 yorum yapılmış

 

 
İsminiz :
Mail Adresiniz :
Yorum
:
   

     

// Gizle
ASP Rehberi Mini Editör

  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle
Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle
 Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle  Form 'a gülücük ekle Form 'a gülücük ekle Form 'a gülücük ekle


 
 
Yorumlar(9) Not : Yorumlar zamana göre son yorumdan ilk yoruma doğru(azalan) biçimde sıralanmıştır.
Yorumlarınız site yöneticileri tarafından onaylandıktan sonra eklenecektir.
+ Ellerine saglık güzel paylaşım 
Yazan : Yasin | Zaman : 15 Ekim 2007 Pazartesi, Saat 13:34
 
+ helal valla
Yazan : sinan | Zaman : 14 Kasım 2006 Salı, Saat 17:26
 
+ Yürekten teşekkürler.
Yazan : osman demren | Zaman : 12 Kasım 2006 Pazar, Saat 15:35
 
+ Merhaba,
Ajax ile veri alırken, veriyi aldığın sayfanın başına
<%
Response.CodePage = 1254
Response.CharSet = "iso-8859-9"
%>
kodlarını ekleyerek çözebilrisin
Yazan : Serdar Toros | Zaman : 23 Eylül 2006 Cumartesi, Saat 20:00
 
+ Çok çokl çok ama çok teşekkürler.
Yazan : chackal | Zaman : 22 Eylül 2006 Cuma, Saat 19:17
 
+ Ajax ile veri alırken denedim olmadı.Bu sistem sadece komple site çekiyor galiba
Yazan : Onur Akın | Zaman : 21 Eylül 2006 Perşembe, Saat 23:40
 
 .: Sayfalar  1. 2.
 
# Kategori'nin Yenileri

İsim

Hit

Turuncu Galeri (tr)

2140

Haydi okullar internete.... (tr)

200

rc0der Reklam Sistemi v1.0 (tr)

525

HiddenChest İş ve Bayilik Başvuru Formu (tr)

1134

TradeSE E-Ticaret Yazılımı (tr)

327

Link Portal 2007 3 Temalı (tr)

1450

Gupse Medya Linkleri v0.1 (tr)

378

HiddenChest Ziyaretçi Defteri (tr)

1335

HiddenChest Kayan Haber (tr)

1727

HiddenChest Aktif/Pasif Haber Sistemi 1.1 (tr)

762

 
 
# Kategori'nin Popülerleri

İsim

Hit

IIS Kurulumu ve Yazma İzni

68447

Üyelik Sistemi Yapımı

49034

Veritabanı Tablo İşlemleri

31068

MS SQL Server - 1

30117

Hazır Site v2.1 (tr)

26814

Klasör Şeklinde Linkler(404 Yönetimi)

22044

Sayfaları şifreleme(ENCODE)

20181

MS SQL Server - 2

20021

MS SQL Server - 3

14282

Include Yöntemleri

12863

 
  # AKTİF ÜYELER
Aktif üye yok
 
 
 

 
 ASP Rehberi © 2004 - 2008
 Tasarım ve Programlama : Serdar TOROS
 ASPRehberi.Net web sitesi SiDEnet sunucularından yayınlanmaktadır.

[ 0,14 ]    ASPRehberi.NET RSS Kaynağı   Bu site Microsoft SQL Server Veritabanı kullanmaktadır

eXTReMe Tracker