VirtualBox, gość linuks, host Windows, folder współdzielony, brak polskich znaków

linux
codepage
virtualbox

(Dampsy) #1

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.


(marcin82) #2

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:
. . .


(kowgli) #3

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.


(Dampsy) #4

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’


(marcin82) #5

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


(Dampsy) #6

Nie mogę zamontować go ręcznie, ponieważ
unknown mount option `relatime’


(Dampsy) #7

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


(wojtek20124) #8

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++


Poczta email na dwóch komputerach jednocześnie
(marcin82) #9

Fakt, gedit też może mieć niespodzianki … Sprawdź inne edytory, np. konsolowy nano, graficzne mousepad, pluma albo bardziej rozbudowane scite, geany.


(Dampsy) #10

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?


(Domker) #11

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.


(Dampsy) #12

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.


(Domker) #13

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):


(Dampsy) #14

Ok, tylko że mam to wyświetlić za pomocą polecenia cat, w którym to polskie znaki się nie wyświetlają.


(Domker) #15

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ół :slight_smile:


(kowgli) #16

Ponoć najbardziej polskie słowo :slight_smile: Bo same nasze litery i oddaje polski charakter.


(krystian3w) #17

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” :heavy_check_mark:.


(Dampsy) #18

Bardzo dziękuję wszystkim za pomoc :slight_smile: