Forum: Ders Arası RSS
Curl:Unrecognized Encoding: ISO-8859-9
Avatar
huseyin #1
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Curl:Unrecognized Encoding: ISO-8859-9
Merhabalar

Curl ile veri çekerken normal bir sitede direkt veriyi
auto content = get(url);

şeklinde alabiliyorum ve kaynak kod verimli bir şekilde elimde oluyor. Ancak bazı sitelerde(charsetleri ISO-8859-9 olanlarda denendi) bu hata dönüyor ve program kapanıyor ne yapmam gerektiğini bilmiyorum.
Yardımlarınız için teşekkür ederim
Huseyin
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Program şöyle herhalde:
import std.net.curl;
 
pragma(lib, "curl");
 
void main()
{
    auto url = "ddili.org";
    auto content = get(url);
}
O hatayı gösteren bir URL söyler misin.

Ali
agora #3
Üye Tem 2013 tarihinden beri · 221 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Ali hocam

bahsi geçen charset'li bir site

http://www.r10.net/
acehreli (Moderatör) #4
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bu, std.net.curl'ün kullandığı std.encoding'in bir kısıtlaması. Desteklenen kodlamalar arasında o kodlama bulunmuyor: UTF-8, UTF-16, UTF-32, ASCII, ISO-8859-1 (also known as LATIN-1), and WINDOWS-1252.

Ancak, register() işlevi ile yeni kodlamalar öğretilebiliyormuş:

  http://dlang.org/phobos/std_encoding.html#.EncodingScheme.…

Bunun kolay bir iş olup olmadığını henüz bilmiyorum. :-/

Ali
acehreli (Moderatör) #5
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Sanırım şöyle bir şey olması lazım:
import std.stdio;
import std.encoding;
import std.net.curl;
 
pragma(lib, "curl");
 
class EncodingSchemeLatin5 : EncodingSchemeLatin1
{
    shared static this()
    {
        EncodingScheme.register(__MODULE__ ~ ".EncodingSchemeLatin5");
    }
 
    const
    {
        override string[] names()
        {
            return
            [
                cast(string)
                "CP819",
                "IBM819",
                "ISO-8859-9",
                "ISO_8859-9",
                "ISO_8859-9:1987",
                "csISOLatin5",
                "iso-ir-900",
                "l5",
                "latin5"
            ];
        }
 
        override string toString()
        {
            return "ISO-8859-9";
        }
 
        override size_t encode(dchar c, ubyte[] buffer)
        {
            switch (c) {
            case '\u011e' : buffer[0] = 208; return 1;
            case '\u0130' : buffer[0] = 221; return 1;
            case '\u015e' : buffer[0] = 222; return 1;
            case '\u011f' : buffer[0] = 240; return 1;
            case '\u0131' : buffer[0] = 253; return 1;
            case '\u015f' : buffer[0] = 254; return 1;
            default:
                return super.encode(c, buffer);
            }
        }
 
        override dchar decode(ref const(ubyte)[] s)
        {
            switch (s[0]) {
            case 208 : return '\u011e';
            case 221 : return '\u0130';
            case 222 : return '\u015e';
            case 240 : return '\u011f';
            case 253 : return '\u0131';
            case 254 : return '\u015f';
            default:
                return super.decode(s);
            }
        }
    }
}
 
void main()
{
    auto url = "http://www.r10.net/";//"ddili.org";
    auto content = get(url);
    writeln(content);
}

Ali
Avatar
huseyin #6
Üye Haz 2012 tarihinden beri · 363 mesaj · Konum: Ankara
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Evet bu son verdiğiniz her şeyi karşıladı. Şuanda hiçbir sorun yok teşekkür ederim :)
Huseyin
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Ders Arası RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-23, 23:18:09 (UTC -08:00)