Кіріспе
Файлдарды берудің кодтау схемасы
yEnc – Usenet желісінде немесе электрондық пошта арқылы хабарламаларда екілік файлдарды беруге арналған екілікті мәтінге кодтау схемасы. Ол 8 биттік кодтау әдісін пайдаланып, бұрынғы US ASCII негізіндегі кодтау әдістерімен салыстырғанда қосымша шығындарды азайтады. yEnc-тің қосымша шығыны көбінесе (әрбір байт мәні орташа есеппен шамамен бірдей жиілікпен кездессе) 1–2% ғана, ал uuencode және Base64 сияқты 6 биттік кодтау әдістері үшін 33–40% құрайды. yEnc бастапқыда Юрген Хелбинг жасаған, ал оның алғашқы нұсқасы 2001 жылдың басында жарық көрді. 2003 жылға қарай yEnc Usenet желісінде екілік файлдар үшін де-факто стандартты кодтау жүйесіне айналды. yEncode атауы "Неге кодтау керек?" деген сөз тіркесімен байланысты, себебі идеясы – хабарлама форматы стандартына сәйкес болу қажет болған жағдайда ғана символдарды кодтау.
yEnc қалай жұмыс істейді
Usenet және электрондық пошта хабарламаларының мазмұны тек ASCII таңбаларын (немесе) қамтуы тиіс еді. Көптеген бәсекелес кодтаулар екілік файлдарды оларды басып шығаруға болатын ASCII таңбаларына түрлендіреді, себебі басып шығаруға болатын ASCII таңбаларының диапазоны көптеген операциялық жүйелерде қолдауға ие. Дегенмен, бұл қолданылатын таңбалар жиынтығын едәуір азайтады, сондықтан 8 биттік байт желілерінде маңызды артық жүктеме (жоғалған өткізу қабілеті) пайда болады. Мысалы, uuencode және Base64 жүйелерінде үш байт дерек төрт басып шығаруға болатын ASCII таңбасына кодталады, яғни төрт байтқа тең, бұл 33% артық жүктеме (тақырыптардан басқа). yEnc бір байтты бейнелеу үшін бір таңбаны (бір байтты) қолданады, бірақ кейбір ерекшеліктер бар. yEnc екілік деректерді Usenet және электрондық пошта арқылы беруге болады деп есептейді. Сондықтан, 256 мүмкін байттың 252-сі өзгеріссіз бір байт ретінде жіберіледі, нәтиже басып шығаруға болатын ASCII таңбасы болсын, болмасын. Тек NUL, LF, CR және = таңбалары түрлендіріледі. LF және CR түрлендіріледі, өйткені Интернет хабарламаларын анықтайтын RFC құжаттары әлі де тасымалдау қайтарымы мен жаңа жолдар пошта хабарламасында арнайы мағынаға ие болуын талап етеді. = қашып кету таңбасы болып табылады, сондықтан ол өзі де түрлендіріледі. NUL де кең таралған кодтағы нөлдік таңбаларды өңдеудегі мәселелерге байланысты түрлендіріледі, бірақ yEnc оптимизациялау үшін әр бастапқы байтқа 42 қосады, соның арқасында жиі кездесетін нөлдік байттардың ұзақ тізбектеріне көп түрлендіру қажет болмайды. yEnc-ті сипаттайтын RFC немесе басқа стандартты құжат жоқ. yEnc-тің бас бетінде техникалық сипаттамасы мен грамматикасы бар. yEnc-тің бас беті "барлық негізгі жаңалықтар оқырмандары yEnc қолдауын қоса алды" деп мәлімдейді. Microsoft Outlook Express, Windows Mail және Windows Live Mail жаңалықтар мен пошта үшін yEnc қолдауын қамтамасыз етпейді, бірақ қосымша бағдарламалар бар. Mozilla Thunderbird бір бөліктен тұратын yEnc файлдарын декодтай алады, бірақ көп бөліктен тұратын екілік файлдарды біріктіре алмайды.
The yEnc homepage states that "all major newsreaders have been extended to yEnc support". Microsoft's Outlook Express, Windows Mail and Windows Live Mail do not provide yEnc support for either news or mail, but there are plug ins available. Mozilla Thunderbird will decode single part yEnc files, but is not able to combine multi part binaries.
Қиындықтар
Көптеген бағдарламашылар мен жаңалықтар әкімшілері yEnc-тің кемшіліктерін атап көрсетті. Ол uuencode-тағы көптеген қателерге ұшырайды, олардың көпшілігі MIME арқылы бұрынғы жылдары шешілген (ол uuencode-тағы сол қателерді түзеткен). Мысалы, yEnc кодталған файлды хабардың мәтінінде "=ybegin" және "=yend" тізбектерімен қоршауды талап етеді. Осы жылдың қараша айында MyNews 1.9 тегін нұсқасына анықтамалық кодтаушы және декодер қосылды. yDec, тегін win32 декодері 2001 жылдың 14 қарашасында жарық көрді. 2002 жылдың 21 наурызында Agent 1.91 нұсқасымен yEnc-ті қолдады. Юрген Хелбингтің пікіріне байланысты, жаңа нұсқаның шығуы бір аптаға кейінге шегерілді. Жаңа нұсқа шыққаннан кейін бірнеше күн өткен соң Юрген Хелбинг Forté yEnc-ті ең жақсы деңгейде іске асырғанын жазды. Stuffit Deluxe 2003 жылы 8.0 нұсқасымен yEnc қолдауын қосты. PowerArchiver 9.2 2005 жылдың мамыр айында yEnc қолдауын қосты.