Portál AbcLinuxu, 6. května 2025 09:20

Dotaz: PuTTY a výpis súborov/adresárov s diakritikou

9.12.2019 11:20 xrandr
PuTTY a výpis súborov/adresárov s diakritikou
Přečteno: 392×
Odpovědět | Admin
Mám problém zobraziť správne znaky (znaky s diakritikou) cez PuTTY. Príkaz ls namiesto znakov s diakritikou zobrazuje ?.
$ locale
LANG=sk_SK.UTF-8
LC_CTYPE="sk_SK.UTF-8"
LC_NUMERIC="sk_SK.UTF-8"
LC_TIME="sk_SK.UTF-8"
LC_COLLATE="sk_SK.UTF-8"
LC_MONETARY="sk_SK.UTF-8"
LC_MESSAGES="sk_SK.UTF-8"
LC_PAPER="sk_SK.UTF-8"
LC_NAME="sk_SK.UTF-8"
LC_ADDRESS="sk_SK.UTF-8"
LC_TELEPHONE="sk_SK.UTF-8"
LC_MEASUREMENT="sk_SK.UTF-8"
LC_IDENTIFICATION="sk_SK.UTF-8"
LC_ALL=
Súbory sa dostávajú na server uploadom cez PHP skript.
PuTTY: font Consolas (Central European script), Window->Translation->Remote character set = UTF-8
WinSCP s fontom Consolas (Central European script) zobrazuje znaky v poriadku.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 9.12.2019 11:31 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PuTTY a výpis súborov/adresárov s diakritikou
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ostatní znaky (mimo ls) se v terminálu zobrazují správně?

Jsi si jistý, že ten PHP skript kódování názvů nezmrší?

Když uděláš ls > /tmp/seznam.txt a ten soubor si stáhneš a prozkoumáš lokálně, je také zmršený?
Hello world ! Segmentation fault (core dumped)
9.12.2019 12:42 debian+
Rozbalit Rozbalit vše Re: PuTTY a výpis súborov/adresárov s diakritikou
Skor ani lokalne nemusi skumat. Staci nasledne, ktory sa snazi zistit, co je to za subor. A pri tom detekovat aj typ textoveho suboru a typ kodovania:
file /tmp/seznam.txt
.

Nastavenie kodovania v client terminalovi, tj. PuTTY: http://thegreyblog.blogspot.com/2009/08/configuring-putty-to-use-utf-8.html
9.12.2019 13:01 xrandr
Rozbalit Rozbalit vše Re: PuTTY a výpis súborov/adresárov s diakritikou
$ file ./tmp.txt
./tmp.txt: ISO-8859 text
9.12.2019 12:58 metrognom
Rozbalit Rozbalit vše Re: PuTTY a výpis súborov/adresárov s diakritikou
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vytvoril bych soubor nebo slozku se slovenskymi znaky pomoci WinSCP a jiny pomoci PuTTY a podival se na konzoli, ktery je zobrazen spravne.
9.12.2019 13:04 xrandr
Rozbalit Rozbalit vše Re: PuTTY a výpis súborov/adresárov s diakritikou
Ak to vytvorím ručne (cez Midnight Commander), tak sa to zobrazí správne. Vyzerá to akoby naozaj ten PHP skript to nejako zmršil, ale prečo potom WinSCP to zobrazuje korektne?

Josef Kufner avatar 9.12.2019 13:50 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: PuTTY a výpis súborov/adresárov s diakritikou
WinSCP může (nevím jistě, nepoužívám to) mít nějakou detekci, které kódování se zrovna používá, a může automaticky přepínat mezi ISO-8859-2 (Linux), CP1250 (Windows) a UTF-8 (21. století). Před zavedením UTF-8 byly takové problémy celkem časté, takže pokud to je nějaký starší skript na starém serveru, je možné, že dělá blbosti a nikdo to ještě neopravil.

Koukni jestli ta uploadovací stránka používá UTF-8 a jestli locales v PHP jsou správně nastavené na sk_SK.UTF-8 (tedy tak jak je máš v terminálu).
Hello world ! Segmentation fault (core dumped)
Pavel 'TIGER' Růžička avatar 9.12.2019 13:50 Pavel 'TIGER' Růžička | skóre: 54
Rozbalit Rozbalit vše Re: PuTTY a výpis súborov/adresárov s diakritikou
Otázkou je, jestli mapuje "správnou" znakovou sadu.
9.12.2019 14:12 xrandr
Rozbalit Rozbalit vše Re: PuTTY a výpis súborov/adresárov s diakritikou
Cez iconv som zistil, že názvy sú v kódovani Windows-1250 (to vysvetluje prečo s tým nemá problém WinSCP).
10.12.2019 23:18 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: PuTTY a výpis súborov/adresárov s diakritikou
Takže blbě nastavené locales v PHP.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.