Forum: PC Hard- und Software TeraTerm & Unicode/UTF-8


von Ralf (Gast)


Lesenswert?

Hallo,

ich möchte in TeraTerm über eine serielle Verbindung Unicode/UTF-8 
Zeichen darstellen. Die Gegenseite ist ein PSoC 5LP (ARM Cortex-M3). 
Leider klappt es nicht, es werden nur Fragezeichen für die Zeichen 
dargestellt. Normaler Text funktioniert einwandfrei.

Compiler ist GCC. Zur Ausgabe wird printf() verwendet, d.h. die Funktion 
_write() biegt die Ausgabe auf den UART um.
Ich bin mir ziemlich sicher, dass es der Controller richtig ausspuckt - 
über einen Breakpoint in der _write() Funktion habe ich die UTF8 
Codierung der Zeichen geprüft, das passt.

In TeraTerm habe ich in den Grundeinstellungen UTF-8 als Sprache 
gewählt. In den Terminaleinstellungen ist die Empfangs- und 
Sendekodierung ebenfalls auf UTF-8 eingestellt, die "locale" steht auf 
"german". Wenn ich das TeraTerm-Handbuch richtig verstehe ist das alles, 
was einzustellen ist.

Die Terminalschriftart ist "Consolas" und laut 
https://www.fileformat.info/info/unicode/font/consolas/list.htm sind die 
Zeichen, die ich verwenden möchte darin enthalten. Darstellen möchte ich 
‾ (OVERLINE, U+203E), ↑ (Upward Arrow, U+2191) und ↓ (Downward Arrow, 
U+2193).
Hat jemand eine Idee, woran es noch scheitern könnte?

Grüße

von foobar (Gast)


Lesenswert?

Schalt halt mal den hex-Debug-Modus im Tera-Term ein...

von Ralf (Gast)


Lesenswert?

foobar schrieb:
> Schalt halt mal den hex-Debug-Modus im Tera-Term ein...
Cool, wieder was gelernt. Danke. Wusste nicht, dass es die Funktion 
gibt. Sehr hilfreich.

Somit ein Update zum aktuellen Stand: der Controller ballert es nicht 
nur richtig raus, es kommt auch richtig an. "Richtig" bedeutet in dem 
Fall, dass Teraterm im Hex-Mode die erwarteten UTF-8 Sequenzen anzeigt.
Beim Aktivieren des Debug-Modes ist mir aufgefallen, dass in der 
Teraterm INI-Datei die Codepage auf 932 (ANSI/OEM Japanese) stand. Ich 
hatte dann diverse Codepages ausprobiert, u.a. 65001 (UTF-8), aber 
leider keine Änderung.

Laut Handbuch bedeutet das Fragezeichen wohl, dass das entsprechende 
Zeichen nicht unterstützt wird. Heisst das nun, dass es mit Teraterm gar 
nicht geht oder gibt's noch ne Einstellung, die evtl. falsch gesetzt 
ist?

Grüße

von Ralf (Gast)


Lesenswert?

Update: mit TeraTerm hab ich es leider nicht hinbekommen. PuTTY scheint 
die Zeichen darstellen zu können. Nicht meine favorisierte Lösung, aber 
ich hoffe dass ich nur dieses eine Mal brauche :D

Grüße

von Jens G. (jensig)


Lesenswert?

Ralf schrieb:
> hatte dann diverse Codepages ausprobiert, u.a. 65001 (UTF-8), aber
> leider keine Änderung.

Und was sagt 1208? Oder das Ding will wirklich den String "UTF-8" dort 
sehen ...

: Bearbeitet durch User
von Ralf (Gast)


Lesenswert?

Jens G. schrieb:
> Ralf schrieb:
>> hatte dann diverse Codepages ausprobiert, u.a. 65001 (UTF-8), aber
>> leider keine Änderung.
>
> Und was sagt 1208? Oder das Ding will wirklich den String "UTF-8" dort
> sehen ...
1208 funktioniert auch nicht. Laut Handbuch:
https://ttssh2.osdn.jp/manual/4/en/usage/unicode.html
ist außer auf UTF-8 und der passenden Codepage umzustellen nach meiner 
Interpretation nichts weiter zu tun. Deswegen war ich so erstaunt dass 
gar nix gewirkt hat...

Grüße

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.