Visual Basic'te Türkçe karakter sorunu

xaxeix
04-05-2009, 19:41   |  #1  
OP Yıllanmış Üye
Teşekkür Sayısı: 0
117 mesaj
Kayıt Tarihi:Kayıt: Eki 2008

Merhaba arkadaşlar, sonunda Vb yi indirdim ve programlama ile ilgili birkaç şey öğrendim. Azar azar bildiklerimden koyarak birşeyler yapmaya çalıştım, işte şimdi programa bir sözlük fonksiyonu eklemek istedim, ama bu sözlük aslında www.sozluk.net sitesinden faydalanıyor.

Button7_Click Kodu

[ Tüm kodu seç ] [ Yeni Pencerede Göster ]
Dim GoogleAdres As String = "http://www.sozluk.net/index.php?word=" Dim AdresSonu As String = TextBox6.Text WebBrowser1.Navigate(GoogleAdres & AdresSonu)
kodunu böyle yaptım. Altta da WebBrowser1 var. Sonra yazıyorum Textbox6'ya birşey, örneğin "sözlük" yazdım diyelim, iki kere komut dizisi hatası çalıştırmaya devam etmek istiyor musunuz yazısı geliyor(ie ile ilgili), sonra devam diyorum, site açılıyor, ama "sözlük" yerine "s#zl#k" yazısı çıkıyor sitedeki arama kutusunda.

Benim tahminim, Türkçe karakterleri tanımıyor herhalde. Ama nasıl çözebileceğimi bilmiyorum, bir yardım eli uzatırsanız sevinirim.

Son Düzenleme: xaxeix ~ 04 Mayıs 2009 20:30
KuaforPlus
05-07-2009, 10:53   |  #2  
KuaforPlus avatarı
Yıllanmış Üye
Teşekkür Sayısı: 1
223 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

Public Function URLEncode(StringToEncode As String, Optional _
   ArtiKullan As Boolean = False) As String
Dim TempAns As String
Dim CurChr As Integer
CurChr = 1
Do Until CurChr - 1 = Len(StringToEncode)
  Select Case Asc(Mid(StringToEncode, CurChr, 1))
    Case 48 To 57, 65 To 90, 97 To 122
      TempAns = TempAns & Mid(StringToEncode, CurChr, 1)
    Case 32
      If ArtiKullan = True Then
        TempAns = TempAns & "+"
      Else
        TempAns = TempAns & "%" & Hex(32)
      End If
   Case Else
         TempAns = TempAns & "%" & _
              Right("00" & Hex(Asc(Mid(StringToEncode, _
              CurChr, 1))), 2)
End Select
  CurChr = CurChr + 1
Loop
URLEncode = TempAns
End Function
 
Kodunuzu şu şekle getirin
 
Dim GoogleAdres As String = "http://www.sozluk.net/index.php?word="
Dim AdresSonu As String = TextBox6.Text
WebBrowser1.Navigate(GoogleAdres & URLEncode(AdresSonu))
 
Yukarıdaki Function içindeki kod ne yapıyor.
Vermiş olduğunuz sözcüğü web diline çeviriyor demek daha anlamlı olur.
yani...
sizin kelimeniz içinde geçen ö harfini size %F6 olarak geri döndürüyor ki dediğiniz tarzdaki sorunları yaşamayın.
umarım işinize yarar...

PcMaKeR
05-07-2009, 15:50   |  #3  
PcMaKeR avatarı
Yıllanmış Üye
Teşekkür Sayısı: 6
8,935 mesaj
Kayıt Tarihi:Kayıt: Eki 2005

O sizin sorununuz değil vb nin de sorunu deil o standart internet sorunu.
http://www.sozluk.net/index.php?word=Türkçe bakın bakayım ne çıkıyor.
Arkadaş basit bir tarayıcı yapmış sözlük programı değil :)
Basic te öyle bir sorun yok. Sadece url yi encode edip sunucuya bildirmeniz gereklidir ;)

KuaforPlus
09-07-2009, 10:50   |  #4  
KuaforPlus avatarı
Yıllanmış Üye
Teşekkür Sayısı: 1
223 mesaj
Kayıt Tarihi:Kayıt: Nis 2007

Aşağıdaki Kodlar Kesin Çalışıyor
Bizzat denedim
 

Buton İçine Ekleyin

[ Tüm kodu seç ] [ Yeni Pencerede Göster ]
Dim GoogleAdres As String = "http://www.sozluk.net/index.php?word=" Dim AdresSonu As String = TextBox6.Text WebBrowser1.Navigate(GoogleAdres & URLEncode(AdresSonu))
 
 
Modul içine ekleyin
[ Tüm kodu seç ] [ Yeni Pencerede Göster ]
Public Function URLEncode(StringToEncode As String, Optional _    ArtiKullan As Boolean = False) As StringDim TempAns As String Dim CurChr As Integer CurChr = 1 Do Until CurChr - 1 = Len(StringToEncode)   Select Case Asc(Mid(StringToEncode, CurChr, 1))     Case 48 To 57, 65 To 90, 97 To 122       TempAns = TempAns & Mid(StringToEncode, CurChr, 1)     Case 231 'ç         TempAns = TempAns & "%C3%A7"     Case 199 'Ç         TempAns = TempAns & "%C3%87"     Case 252 'ü         TempAns = TempAns & "%C3%BC"     Case 220 'Ü         TempAns = TempAns & "%C3%9C"     Case 246 'ö         TempAns = TempAns & "%C3%B6"     Case 214 'Ö         TempAns = TempAns & "%C3%96"     Case 254 'ş         TempAns = TempAns & "%C5%9F"     Case 222 'Ş         TempAns = TempAns & "%C5%9E"     Case 240 'ğ         TempAns = TempAns & "%C4%9F"     Case 208 'Ğ         TempAns = TempAns & "%C4%9E"     Case 221 'İ         TempAns = TempAns & "%C4%B0"     Case 253 'ı         TempAns = TempAns & "%C4%B1"     Case 32       If ArtiKullan = True Then         TempAns = TempAns & "+"       Else         TempAns = TempAns & "%" & Hex(32)       End If    Case Else          TempAns = TempAns & "%" & Right("00" & Hex(Asc(Mid(StringToEncode, CurChr, 1))), 2) End Select  CurChr = CurChr + 1 LoopURLEncode = TempAns End Function

Son Düzenleme: KuaforPlus ~ 09 Temmuz 2009 10:51