| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > JavaScript base64 encode |
| Автор: Sergei 15.1.2004, 11:37 |
| Как на JavaScript закодировать строку Например Здравствуйте! в =?koi8-r?B?+sTSwdfT1NfVytTFIQ==?= На perl есть функция encode_base64($str, [$eol]); Как это можно сделать на JavaScript? |
| Автор: [xoodo] 15.1.2004, 18:02 |
| На Яваскрипте никак. Берусь утверждать. |
| Автор: Sergei 16.1.2004, 09:53 |
| Это кодирует английские символы. Как быть с русскими? Или все одно что для русских, что для английских? var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; function base64encode (str) { var out, i, len; var c1, c2, c3; len = str.length; i = 0; out = ""; while(i < len) { c1 = str.charCodeAt(i++) & 0xff; if(i == len) { out += base64EncodeChars.charAt(c1 >> 2); out += base64EncodeChars.charAt((c1 & 0x3) << 4); out += "=="; break; } c2 = str.charCodeAt(i++); if(i == len) { out += base64EncodeChars.charAt(c1 >> 2); out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)); out += base64EncodeChars.charAt((c2 & 0xF) << 2); out += "="; break; } c3 = str.charCodeAt(i++); out += base64EncodeChars.charAt(c1 >> 2); out += base64EncodeChars.charAt(((c1 & 0x3)<< 4) | ((c2 & 0xF0) >> 4)); out += base64EncodeChars.charAt(((c2 & 0xF) << 2) | ((c3 & 0xC0) >>6)); out += base64EncodeChars.charAt(c3 & 0x3F); } return out; } |