indy ile post sonrası geri dönen veride türkçe Karakter soru
indy ile post sonrası geri dönen veride türkçe Karakter soru
s.a programlama konusunda sorun yaşamayacağım zamanlar ne zaman gelecek
bu acemilik çok kötü bişey
C++ İndy ile websitemdeki php dosyasına bilgiyi post edip ordan geri dönen bilgiyi alıyorum buraya kadar sorun yok
indy ile bilgi gönderirken Büyük Küçük Hark türkçe karakter olsada düzğün gidiyor
ancan geri dönen bilgide Büyük Küçük Türkçe Karakterler ( Ş,Ğ,ü,ö,ç ) de sorun yok
Büyük Küçük Türkçe Karakterler (ğ,Ü,Ö,ö,Ç) olunca iki tane sorun işareti olarak geri dönüyor
php sayfam, veri tabanı, tablom, UTF-8 dir sorun neden kaynalıyordur
bu acemilik çok kötü bişey
C++ İndy ile websitemdeki php dosyasına bilgiyi post edip ordan geri dönen bilgiyi alıyorum buraya kadar sorun yok
indy ile bilgi gönderirken Büyük Küçük Hark türkçe karakter olsada düzğün gidiyor
ancan geri dönen bilgide Büyük Küçük Türkçe Karakterler ( Ş,Ğ,ü,ö,ç ) de sorun yok
Büyük Küçük Türkçe Karakterler (ğ,Ü,Ö,ö,Ç) olunca iki tane sorun işareti olarak geri dönüyor
php sayfam, veri tabanı, tablom, UTF-8 dir sorun neden kaynalıyordur
Re: indy ile post sonrası geri dönen veride türkçe Karakter
En kısa ve öz haliyle sisteminizin karakter kodlamasının utf-8 olmamasından kaynaklanıyor.
Ayrıca İ ve ı karakterlerinde de sorun yaşıyorsunuzdur.
Gelen veriyi karakter dönüşümünü gerçekleştirdiğiniz fonksiyona gönderip kullanabilirsiniz.
Geçmişte başka çözümlerde denedim, olduda ama en sağlıklısı kontrolun bende olduğu.. yukardaki yani
Hız konusunda endişe etmenize gerek yok.. Büyük verilerle (olağan web sayfaları olarak) hız testlerinde iddialı olabilirsiniz..
Ayrıca İ ve ı karakterlerinde de sorun yaşıyorsunuzdur.
Gelen veriyi karakter dönüşümünü gerçekleştirdiğiniz fonksiyona gönderip kullanabilirsiniz.
Kod: Tümünü seç
UnicodeString TFrmCrypt::TRK(AnsiString sStr) {
sStr = ReplaceStr(usStr, "Ç", "Ç");
sStr = ReplaceStr(usStr, "Ä", "Ğ");
sStr = ReplaceStr(usStr, "Ü", "Ü");
sStr = ReplaceStr(usStr, "Ö", "Ö");
...................gibi diğer dönüşümler......
Application->ProcessMessages();
return sStr;
}
sGelenText = TRK(sGelenVeri);
Hız konusunda endişe etmenize gerek yok.. Büyük verilerle (olağan web sayfaları olarak) hız testlerinde iddialı olabilirsiniz..
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
Re: indy ile post sonrası geri dönen veride türkçe Karakter
hocam yardımlarını için Teşekkürler
UTF-8 de Gelen Bazı Karakterlerin Degeri Aynı Gözüküyor
convert ettiğimde sorun yaşıyorum
bunlar tükçe karakterler
Ö-Ş-ş-İ-ı-Ğ-ğ-ü-ö-Ç-Ü-ç
bunlar gelen degerler
Ã-Å-Å-İ-ı-Ä-Ä-ü-ö-Ã-Ã-ç
gelen degerlere baktığımda
Büyük Ş ile
küçük ş
Büyük Ğ ile
küçük ğ
Büyük Ç ile
küçük Ü
aynı karakter nasıl oluyor acaba
başka nasıl çözül olabilir
UTF-8 de Gelen Bazı Karakterlerin Degeri Aynı Gözüküyor
convert ettiğimde sorun yaşıyorum
bunlar tükçe karakterler
Ö-Ş-ş-İ-ı-Ğ-ğ-ü-ö-Ç-Ü-ç
bunlar gelen degerler
Ã-Å-Å-İ-ı-Ä-Ä-ü-ö-Ã-Ã-ç
gelen degerlere baktığımda
Büyük Ş ile
küçük ş
Büyük Ğ ile
küçük ğ
Büyük Ç ile
küçük Ü
aynı karakter nasıl oluyor acaba
başka nasıl çözül olabilir
Re: indy ile post sonrası geri dönen veride türkçe Karakter
Otomatik dönüştürülüyorlar. Olan bu..
Bu dönüşümü sistem bazında, programınıza özel olarak kontrolünüze alırsanız yeni çözümler çıkar.
"locale encoding" anahtar sözcüklerinin c++ yönünden araştırması yararlı olacaktır.
TEncoding araştırması da yeni çözümler sunabilir.
AnsiStringT<1254> değişkenadı; tanımlaması da başka bir çözüm grubuna açılıyor. Ama bu çok başarılı değil.
idHttp nin TStringStream parametresini kullanın.. bu da çözüm sunuyor.
Ama gerektiğinde kontrolun bende olduğu ilk mesajımdaki gibi bir çözümü seçiyorum.
Bu dönüşümü sistem bazında, programınıza özel olarak kontrolünüze alırsanız yeni çözümler çıkar.
"locale encoding" anahtar sözcüklerinin c++ yönünden araştırması yararlı olacaktır.
TEncoding araştırması da yeni çözümler sunabilir.
AnsiStringT<1254> değişkenadı; tanımlaması da başka bir çözüm grubuna açılıyor. Ama bu çok başarılı değil.
idHttp nin TStringStream parametresini kullanın.. bu da çözüm sunuyor.
Kod: Tümünü seç
TStringStream * ssStr = new TStringStream();
sAdres = "http://www.biradres.com";
Http->Get(sAdres, ssStr);
sVeri = ssStr->DataString;
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
Re: indy ile post sonrası geri dönen veride türkçe Karakter
Hocam Bende Kontrolün Bende Olmasını İstiyorum
Ancak Bazı Karakterlerin Karşılıkları nasıl aynı gelebiliyor onu anlayamıyorum ki çevirebileyim
Şöyle
bir fonksiyon yazdım
Post Sonucu Buraya Gönderip Normal Karakterlere Çeviriyorum
ama sonuç istediğim gibi olmuyor ile
yapmaya çalıştım
yani post sonucu
ancak
Ancak Bazı Karakterlerin Karşılıkları nasıl aynı gelebiliyor onu anlayamıyorum ki çevirebileyim
Şöyle
Kod: Tümünü seç
String StringCevirme(String sString)
{
String Eski[30]={"Ö","Å","Å","İ","ı","Ä","Ä","ü","ö","ç","Ã","Ã"};
String Yeni[30]={"Ö","Ş","ş","İ","ı","Ğ","ğ","ü","ö","Ç","Ü","ç"};
for(int i=0;i<= 11;i++)
{
sString=StringReplace(sString,Eski[i],Yeni[i],TReplaceFlags() << rfReplaceAll);
}
return sString ;
}
Post Sonucu Buraya Gönderip Normal Karakterlere Çeviriyorum
ama sonuç istediğim gibi olmuyor
Kod: Tümünü seç
TStringStream * ssStr = new TStringStream();
yapmaya çalıştım
yani post sonucu
Kod: Tümünü seç
TStringStream * ssStr = new TStringStream();
ssStr->WriteString(idHTTP->Post("http://www.sitem.com",Gonderdigim_Degerler));
ShowMessagae(ssStr->DataString); // ile bakıyorum yine Sonuç Hüsran :(
Kod: Tümünü seç
ssStr->Encoding // ile çevirebilirmiyim evet ise nasıl çevirebilirim bilmiyorum
Re: indy ile post sonrası geri dönen veride türkçe Karakter
Çevirdiğiniz bazı karakterler benim tespit edip kullandıklarımla örtüşmüyor.
O noktada titiz bir çalışma yapmamışsınız gibi...
StringReplace yerine ReplaceStr yi daha sade ve okunaklı buluyorum.
ReplaceStr zaten rfReplaceAll çalışıyor...
StringStream için iki kullanım aşağıda.. Sizinkini daha dolaylı ve bu sebepten yavaş buldum.
Kullanım 1 :
Kullanım 2 : Bunu hiç test etmedim. Ancak StringStream için TEncoding başvurularının garantili çözüm olduğunu hiç görmedim.
Sanıyorum sisteme tekliften ibaret, Sağlıklı işe yaramıyor.
Bu yüzden kontrol bende olsun istiyorum.
StringStream kullanım yöntemi Türkçe karakter için etkili.. onu test ettim...
O noktada titiz bir çalışma yapmamışsınız gibi...
StringReplace yerine ReplaceStr yi daha sade ve okunaklı buluyorum.
ReplaceStr zaten rfReplaceAll çalışıyor...
Kod: Tümünü seç
usStr = ReplaceStr(usStr, "Â", "");
usStr = ReplaceStr(usStr, "Å", "Ş");
usStr = ReplaceStr(usStr, "İ", "İ");
usStr = ReplaceStr(usStr, "Ç", "Ç");
usStr = ReplaceStr(usStr, "Ä", "Ğ");
usStr = ReplaceStr(usStr, "Ü", "Ü");
usStr = ReplaceStr(usStr, "Ö", "Ö");
Kullanım 1 :
Kod: Tümünü seç
TStringList *slGiden = new TStringList();
slGiden->Clear();
slGiden->Values["giden1"] = Bilgi1;
slGiden->Values["giden2"] = Bilgi2;
TStringStream * ssGelen = new TStringStream();
sAdres = "http://www.biradres.com";
Http->Post(sAdres, slGiden ssGelen);
sVeri = ssGelen->DataString;
Sanıyorum sisteme tekliften ibaret, Sağlıklı işe yaramıyor.
Bu yüzden kontrol bende olsun istiyorum.
Kod: Tümünü seç
TStringStream * ssGiden = new TStringStream("giden1=Bilgi1&giden2=Bilgi2", TEncoding::UTF8);
TStringStream * ssGelen = new TStringStream();
sAdres = "http://www.biradres.com";
Http->Post(sAdres, ssGiden ssGelen);
sVeri = ssGelen->DataString;
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
Re: indy ile post sonrası geri dönen veride türkçe Karakter
hocam iş TStringStream deymiş
TStringStream ile gelen veriyi alınca
UTF8Decode ettiğim zaman Türkçe Karakter Sorunu Çözüldü
İnşallah bir gün bende burdan yardım edebilecek seviyeye gelirim
Allah Razı Olsun Sizden Çok Şeyler Öğrendim
örnek kod aşağıda
TStringStream ile gelen veriyi alınca
UTF8Decode ettiğim zaman Türkçe Karakter Sorunu Çözüldü
İnşallah bir gün bende burdan yardım edebilecek seviyeye gelirim
Allah Razı Olsun Sizden Çok Şeyler Öğrendim
örnek kod aşağıda
Kod: Tümünü seç
TStringStream *ssStr = new TStringStream();
TStringList *liste = new TStringList ;
liste->Add("degisken1=deger1");
liste->Add("degisken2=deger2");
Form1->IdHTTP1->Post("http://www.sitem.com" ,liste,ssStr);
ShowMessage(UTF8Decode(ssStr->DataString));