Witam wszystkich.
Od kilku dni zacząłem korzystać z systemu Linux Ubuntu 16.04 LTS w maszynie wirtualnej. Tak jak w tytule, mam problem z brakiem polskich znaków, ale tylko w niektórych miejscach. Mogę na przykład wpisać je w terminal i zostaną one poprawnie wyświetlone. Natomiast gdy otworzę plik txt (z folderu udostępnionego zarówno dla Win 8.1 i Linux) utworzony w windowsowym notatniku, występuje problem z polskimi znakami ą ś ź. Pozostałe wyświetlane są poprawnie. Próbowałem już kilka sposobów z internetu, ale one w niczym nie pomogły. Jest to mój pierwszy wpis na forum, więc przepraszam jeśli umieściłem go w złym dziale.
W jaki sposób montujesz udział samby? Zamontuj udział i podaj wynik komendy:
cat /etc/mtab
Które sposoby z internetu w niczym nie pomogły?
link
EDYCJA:
. . .
Sposób montowania raczej nie ma tu nic do rzeczy, bo przecież nie obchodzi go co jest w pliku. Jest to raczej sposób kodowania znaków w pliku tekstowym, konkretnie tzw. BOM (https://pl.wikipedia.org/wiki/BOM_(informatyka).
Znajdź jakiś linuxowy odpowiednik Notepad++ i pobaw się kodowaniem znaków, ustawieniami nowej linii, BOM itp.
Oto wynik komendy o który prosiłeś. Wcześniej wyskoczył tylko błąd odnośnie braku katalogu wspólnego w mnt (u mnie jest on zainstalowany w media).
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,nosuid,relatime,size=1000652k,nr_inodes=250163,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,nosuid,noexec,relatime,size=204584k,mode=755 0 0
/dev/sda5 / ext4 rw,relatime,errors=remount-ro,data=ordered 0 0
/dev/sda6 /usr ext4 rw,relatime,data=ordered 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,nosuid,nodev 0 0
tmpfs /run/lock tmpfs rw,nosuid,nodev,noexec,relatime,size=5120k 0 0
tmpfs /sys/fs/cgroup tmpfs ro,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/pids cgroup rw,nosuid,nodev,noexec,relatime,pids 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=23,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=12293 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
/dev/sda1 /boot ext4 rw,relatime,data=ordered 0 0
/dev/sda7 /home ext4 rw,relatime,data=ordered 0 0
/dev/sda8 /var ext4 rw,relatime,data=ordered 0 0
WSPOLNY /media/sf_WSPOLNY vboxsf rw,nodev,relatime 0 0
tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=204584k,mode=700,uid=1000,gid=999 0 0
gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=999 0 0
/dev/sr0 /media/mucha/VBOXADDITIONS_5.1.28_117968 iso9660 ro,nosuid,nodev,relatime,uid=1000,gid=999,iocharset=utf8,mode=0400,dmode=0500 0 0
Gdy zmieniłem katalog na media wyskoczył taki oto błąd:
mount: unknown filesystem type ‘smbfs’
WSPOLNY /media/sf_WSPOLNY vboxsf rw,nodev,relatime 0 0
No to to jest folder współdzielony, a nie udział samby.
Sprawdź w Ubuntu takie opcje:
sudo umount /media/sf_WSPOLNY
Zamontuj ręcznie z takimi opcjami - na próbę:
sudo mount -t vboxsf -o rw,nodev,relatime,iocharset=cp1250 WSPOLNY /media/sf_WSPOLNY
Sprawdź czy znaki wyświetlają się poprawnie.
Pokaż też wynik polecenia z terminala:
locale -a
Nie mogę zamontować go ręcznie, ponieważ
unknown mount option `relatime’
Zamontowałem go pomijając słowo relatime, ale nadal to samo
A tak powinno to wyglądać (tekst otworzony przez Notatnik w Win 8.1):
Niewątpliwie na uwagę zasługuje wyraz żółć – złożony wyłącznie z liter diakrytyzowanych. Oprócz niego można wymienić np. niedołężność, różowożółty (żółty z odcieniem różowym), różowo-żółty (różowy i żółty), żółtość i… nienotowaną przez słowniki różowożółtość.
ą, ć, ę, ń, ó, ś, ź, ż
Oto wynik locale -a
mucha@Marcin-VirtualBox 1 nie paź 08 12:07:53 ~ # locale -a
C
C.UTF-8
en_AG
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_IN.utf8
en_NG
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM
en_ZM.utf8
en_ZW.utf8
pl_PL.utf8
POSIX
Tak jak wyżej zasugerował @kowgli to nie wina odczytu a raczej programu, którym otwierasz. Gedit nie obsługuje poprawnego dekodowania Windowsowych znaków.
Tak jak powiedział: pozostaje Notepad++
Fakt, gedit też może mieć niespodzianki … Sprawdź inne edytory, np. konsolowy nano, graficzne mousepad, pluma albo bardziej rozbudowane scite, geany.
Więc tak: w LeafPad wszystko wyświetla się poprawnie, Yudit i Pluma wyświetlają wszystkie polskie znaki jako krzaczki.
Czyli nie da się wyświetlić polskich znaków w gedit?
Da się, ale nie zapisuj notatnikiem w Windows 8.1 tylko np. Notepad++ w UTF-8/znak końca linii Unix.
Zauważ, że na odwrót też jest problem. Stwórz plik tekstowy w Linux to Windowsowy notatnik otworzy Ci, ale znak końca linii będzie nie windowsowy i będziesz miał wszystko w jednym wierszu.
Chciałbym tak zrobić, ale nie mogę, gdyż w treści zadania mam napisane aby utworzyć plik z rozszerzeniem txt, a następnie otworzyć go poprzez linuxa i sprawdzić, czy jest poprawnie wyświetlany.
Ale nie ma sprecyzowanego edytora w jakim masz otworzyć.
Każde środowisko graficzne ma w poszczególnych dystrybucjach inne domyślne edytory tekstu. Pod Linux’owym środowiskiem graficznym KDE np. masz Kate / KWrite i tam poprawnie się wyświetla taki plik.
Przykład tekstu napisanego w Windows 10 w notatniku otworzonego w Kate (prosty edytor tekstu w Linux’owym KDE):
Ok, tylko że mam to wyświetlić za pomocą polecenia cat, w którym to polskie znaki się nie wyświetlają.
Oj tam nie wyświetlają się, ale przy odrobinie chęci da się wyświetlić:
Można to nawet zrobić bez zapisu do nowego pliku:
cat | iconv -f windows-1250 -t utf-8 zad-test.txt
Zgodnie z zadaniem - wyświetlone przy pomocy “cat”, a że z małym dopiskiem konwertującym znaki windows-1250 na utf-8 to szczegół
Ponoć najbardziej polskie słowo Bo same nasze litery i oddaje polski charakter.
Możesz też podsumować zadanie że plik wyświetla się niepoprawnie i metodę jak go utworzyłeś, jak nie ma opisu jak to poprawić to zadanie “zaliczone” .
Bardzo dziękuję wszystkim za pomoc