Jak używać
- Wybierz „Koduj”, aby utworzyć blok xxencode, lub „Dekoduj”, aby zamienić go z powrotem na dane.
- Pozostaw włączoną opcję „Wiersze begin / end” i podaj nazwę w polu „Nazwa pliku”, aby otrzymać kompletny blok, albo wyłącz tę opcję, aby otrzymać tylko wiersze danych.
- Wpisz lub wklej dane wejściowe albo otwórz plik. Wynik aktualizuje się na bieżąco podczas pisania.
- Skopiuj wynik lub go pobierz. Przy dekodowaniu ustaw „Wyjście jako” na „Hex” lub pobierz plik, jeśli dane nie są tekstem.
Czym jest xxencode?
Xxencode zachowuje strukturę uuencode i zmienia tylko znaki. Każde 3 bajty nadal dają cztery wartości 6-bitowe, wiersze danych nadal zawierają do 45 bajtów poprzedzonych znakiem długości, a blok nadal znajduje się między wierszem begin 644 name a wierszem end.
64 wartości są przypisane kolejno do znaków + i -, cyfr 0-9, wielkich liter A-Z i małych liter a-z. Znak długości korzysta z tej samej tabeli, więc pełny 45-bajtowy wiersz zaczyna się od h, a pusty wiersz przed end to pojedynczy znak +. Ponieważ układ jest identyczny, wynik ma taki sam rozmiar jak w uuencode: jest o ok. 38% większy od danych wejściowych, licząc znaki długości i znaki końca wiersza.
Dlaczego powstał xxencode
Wynik uuencode jest pełen znaków interpunkcyjnych, takich jak [, ], \, ^ i !. Komputery mainframe IBM używają EBCDIC zamiast ASCII, a te znaki zajmują różne pozycje w różnych stronach kodowych EBCDIC. Gdy poczta przechodziła przez bramy między sieciami ASCII i EBCDIC, takie znaki mogły zostać błędnie przekształcone, co uszkadzało plik.
Litery, cyfry, plus i minus są takie same we wszystkich stronach kodowych EBCDIC, więc tekst xxencode konwertuje się poprawnie w obu kierunkach. Później ten sam cel osiągnął MIME: Base64 również używa tylko liter, cyfr i kilku symboli, które są identyczne w ASCII i EBCDIC. Xxencode nigdy nie stał się tak popularny jak uuencode, a ostatecznie oba zastąpił Base64.
Uuencode i xxencode w porównaniu
| Uuencode | Xxencode | |
|---|---|---|
| Znaki | ASCII od 32 do 95, grawis zamiast zera | + - 0-9 A-Z a-z |
| Początek pełnego wiersza 45-bajtowego | M | h |
| Ostatni wiersz przed end | ` | + |
| Bezpieczny przy przejściu przez bramy EBCDIC | Nie | Tak |
Specyfikacja
| Alfabet | + - 0-9 A-Z a-z |
|---|---|
| Rozmiar wyniku | Ok. 137% wraz z prefiksami wierszy |
| Dopełnienie | Wiersze do 45 bajtów |
| Standard | xxencode |
| Rozróżnia wielkość liter | Tak |
Przykłady
| Wejście (UTF-8) | Wyjście |
|---|---|
Hello, World! | begin 644 data.bin
BG4JgP4wg63RjQalY6E++
+
end |
Base64.is | begin 644 data.bin
7Ea3nNHMo9aZn
+
end |
你好 | begin 644 data.bin
4t9qUtOKx
+
end |
Najczęściej zadawane pytania
Jak odróżnić uuencode od xxencode?
h. Wiersze uuencode zawierają znaki interpunkcyjne, a pełne wiersze zaczynają się od M. Jeśli dekodowanie tutaj kończy się błędem nieprawidłowego znaku, skorzystaj ze strony uuencode.Czy narzędzie zapisuje wiersze begin i end?
begin 644 z podaną nazwą pliku oraz wiersze zamykające. Wyłącz tę opcję, jeśli potrzebujesz tylko zakodowanych wierszy danych.Czy można zdekodować blok bez wiersza begin?
Tak. Bez wiersza begin każdy niepusty wiersz jest dekodowany jako dane. Jeśli taki wiersz występuje, dekodowanie zaczyna się po nim i kończy na wierszu end, więc otaczający tekst jest ignorowany.