Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

UTF8-Code in normalen Text umwandeln

83 views
Skip to first unread message

Marco Moock

unread,
Oct 19, 2022, 7:00:31 AM10/19/22
to
Hallo zusammen,

mit welcher Software kann man UTF8-Code unter Linux im Terminal als
normalen Text mit den Umlauten etc. ausgeben lassen?

--
Gruß
Marco

Marcel Logen

unread,
Oct 19, 2022, 7:17:22 AM10/19/22
to
Marco Moock in de.comp.os.unix.shell:

>mit welcher Software kann man UTF8-Code unter Linux im Terminal als
>normalen Text mit den Umlauten etc. ausgeben lassen?

Ich weiß jetzt nicht genau, was Du meinst, aber Dateien umkodieren
kann man mit "iconv".

iconv -f utf-8 -t L1 INPUTFILE > OUTPUTFILE

wobei "L1" der Kodierung "ISO-8859-1" (also vermutlich dem, was Du
oben als "normalen Text" bezeichnest) entspricht.

iconv -l

zeigt die möglichen Kodierungen an.

Marcel f9v6 (501734)
--
╭───────────╮ ╭──╮ ╭────╮
╰──╮ ╭─╯ ╭─╮ ╭─╯ ╰─╮ ╰─╮ ╰────╮ ╭──╮
╭──╯ ╰────╯ ╰───╯ ╭───╯ ╭─╮ ╭────╮ ╭─╮ │ ╭────╯ ╭─╯ │
─╯ c437f3 ╰──────╯ ╰───╯ ╰─╯ ╰───╯ ╰──────────╯ ╰─

Marco Moock

unread,
Oct 19, 2022, 7:47:18 AM10/19/22
to
Am 19.10.2022 um 13:17:04 Uhr schrieb Marcel Logen:

> iconv -f utf-8 -t L1 INPUTFILE > OUTPUTFILE
>
> wobei "L1" der Kodierung "ISO-8859-1" (also vermutlich dem, was Du
> oben als "normalen Text" bezeichnest) entspricht.

Es geht um folgenden Text als Teil eines Artikels:

Subject: rechts =?UTF-8?B?w7xiZXJob2xlbiwgenVzYW1tZW5zdG/Dn2Vu?= und
=?UTF-8?B?cMO2YmVsbg==?=

Wenn ich das so an iconv gebe (hier mit stdin), kommt der gleiche
String wieder raus.

Marco Moock

unread,
Oct 19, 2022, 7:48:04 AM10/19/22
to
Am 19.10.2022 um 11:21:58 Uhr schrieb Stefan Ram:

> Ich sehe dafür nicht Software, sondern die Konfiguration
> als entscheidend an.

Nein. Es geht darum, einen codierten Text als lesbaren Text auszugeben.
Mein Terminalemulator (xterm) kann UTF-8 anzeigen.

Ralph Angenendt

unread,
Oct 19, 2022, 7:54:23 AM10/19/22
to
 rangenendt ~ >  echo
w7xiZXJob2xlbiwgenVzYW1tZW5zdG/Dn2Vu|base64 -d
überholen, zusammenstoßen
 rangenendt ~ >

RHilft das?

Ralph
--
Is your mother worried?
Would you like us to assign someone to worry your mother?

Ralph Angenendt

unread,
Oct 19, 2022, 7:54:52 AM10/19/22
to
Well, Marco Moock <mo...@posteo.de> wrote:
rangenendt ~ >  echo w7xiZXJob2xlbiwgenVzYW1tZW5zdG/Dn2Vu|base64 -d
überholen, zusammenstoßen
rangenendt ~ >

Michael Bäuerle

unread,
Oct 19, 2022, 8:03:41 AM10/19/22
to
Stefan Ram wrote:
> Marco Moock <mo...@posteo.de> writes:
> >
> > Subject: rechts =?UTF-8?B?w7xiZXJob2xlbiwgenVzYW1tZW5zdG/Dn2Vu?= und
> > =?UTF-8?B?cMO2YmVsbg==?=
>
> Wenn Du das siehst, verwendest Du ein Mail- oder
> News-Programm, das neuere Entwicklungen der Betreffkodierung
> noch nicht umgesetzt hat. Dann kannst Du entweder das
> Programm aktualisieren oder wechseln oder den kodierten Teil
> mit einem speziellen Programm separat "manuell" dekodieren.
>
> Ich vermute, das "?B?" steht für "base 64", [...]

Ja, tut es. Es handelt sich um ein MIME "encoded-word", definiert ist
das in RFC 2047: <https://www.rfc-editor.org/rfc/rfc2047#section-4.1>.

Marco Moock

unread,
Oct 19, 2022, 8:06:18 AM10/19/22
to
Am 19.10.2022 um 11:59:15 Uhr schrieb Stefan Ram:

> Ich vermute, das "?B?" steht für "base 64", daher:

Danke, das war es. War seitens mit mal wieder GIGO mit iconv.
Aber warum steht dann in der gleichen Zeile noch was von UTF-8?

Karl Pflästerer

unread,
Oct 19, 2022, 8:20:57 AM10/19/22
to
Weil es ja erst mal Bytes sind, die du zurückbekommst; es liegt an dir
sie dann als utf-8, utf-16,koi-8 ... zu interpretieren. UFT-8 verrät
dir, wie sie beim Sender kodiert waren

Thomas Hochstein

unread,
Oct 19, 2022, 5:45:02 PM10/19/22
to
Marco Moock schrieb:

> Subject: rechts =?UTF-8?B?w7xiZXJob2xlbiwgenVzYW1tZW5zdG/Dn2Vu?= und
> =?UTF-8?B?cMO2YmVsbg==?=

Das sind MIME encoded words, RFC 2047.

Marcel Logen

unread,
Oct 19, 2022, 9:10:02 PM10/19/22
to
Marco Moock in de.comp.os.unix.shell:

>Am 19.10.2022 um 11:59:15 Uhr schrieb Stefan Ram:

>> Ich vermute, das "?B?" steht für "base 64", daher:
>
>Danke, das war es. War seitens mit mal wieder GIGO mit iconv.

"GIGO" würde ich nicht sagen. Das waren ja alles ASCII-Zeichen im
Input, und da ASCII eine Untermenge von UTF-8 und von ISO-8859-1
ist, kommt da das gleiche wieder heraus.

>Aber warum steht dann in der gleichen Zeile noch was von UTF-8?

Das hat Karl ja schon erklärt. Ich habe mir mit Python3 folgendes
Script geschrieben:

| t20$ cat mime-encoded-words20a.py
| #!/usr/local/bin/python3
| from email.header import decode_header
| a1=decode_header('=?UTF-8?B?w7xiZXJob2xlbiwgenVzYW1tZW5zdG/Dn2Vu?= und =?UTF-8?B?cMO2YmVsbg==?=')
| for b2 in a1:
| if b2[1] == None:
| c3='ascii'
| else:
| c3=b2[1]
| print(bytes.decode(b2[0],encoding=c3),end='')
| print()

<https://docs.python.org/3/library/email.header.html?highlight=mime#email.header.decode_header>

"decode_header" produziert für jedes "encoded word" (und auch für
die nicht kodierten Teile) ein Paar "(decoded_string, charset)".

Die Ausgabe des Scripts (mit "od" 'Terminal-safe' gemacht):

| t20$ ./mime-encoded-words20a.py | od -A n -t c
| 303 274 b e r h o l e n , z u s a
| m m e n s t o 303 237 e n u n d
| p 303 266 b e l n \n

Auf einem UTF-8-Terminal sollte das dabei herauskommen:

| t20$ ./mime-encoded-words20a.py
| überholen, zusammenstoßen und pöbeln
| t20$

Marcel gklc (545452)
--
╭───────╮ ╭──────────╮ ╭─────╮ ╭────────────╮ ╭────╮
╰────╮ ╰──╮ ╭────╮ ╰────────╮ │ ╰───╮ ╰──╮ ╰─╮ ╭──╯ ╰──╮ │
╭──╯ ╭──╯ │ ╰──╮ ╭──╯ ╰───╮ │ ╭─╯ ╭─╯ ╭────╯ ╭─╮ ╭─╯ │
───╯ ╰─────╯ ╰─────╯ 71f3ab ╰──╯ ╰────╯ ╰──────╯ ╰──╯ ╰─
0 new messages