NTFS-3G in šumniki | |||||||
Na USB disku formatiranem na Windows XP (NTFS) imam shranjene datoteke, ki v imenih vsebujejo šumnike. Vse lepo in prav, odpirata jih tako PC kot Mac. Težava pa se pojavi, ko z Macom kreiram na tem disku datoteko (ali mapo) s šumnikom (ali pa nanj kopiram eno iz lokalnega diska). V takem primeru Mac normalno vidi datoteko in jo lahko po mili volji urejam ali kopiram, težava pa nastane, ko to hočem počet na PCju. Tam so šumniki pofedlani in če grem v Explorerju preimenovat datoteko vidim, da je npr. Š sestavljen iz dveh znakov: S in " (strešice). To sicer lahko popravim ampak je zamudno. A ima kdo idejo, kako bi bili šumniki univerzalni? |
|||||||
![]() |
|||||||
|
|||||||
![]() |
|||||||
|
|||||||
![]() |
|||||||
Aja? Kaj pa, če fajlov ne nardim jaz? Verjetno bo najbolje, da v slovenščini kar ukinemo čšž. Halo, Toporišič? |
|||||||
![]() |
|||||||
|
|||||||
![]() |
|||||||
|
|||||||
![]() |
|||||||
Sicer pa, če boš shranjeval datoke v unicode formatu na UNIX/LINUX sistemih, potem ne boš imel težav. Težave se pojavijo pri migraciji na windows sistema. Zaenkrat je še tako, vendar se veliko dela v tej smeri. Npr. linux sistem Ubuntu to že zelo dobro obvladuje.... Če se želiš znebiti teh nadležnosti, se enostavno odloči za en sistem. Kar je v današnjih časih nadvlade oken mogoče težko. Bo pa v prihodnosti še zanimivo. |
|||||||
![]() |
|||||||
Če bo na trgu več operacijskih sistemov, se bodo nekako morali strinjati pri določenih stvareh. Podoben primer so sistemske datoteke, recimo na kakšen USB ključu. Windows jih označi kot sistemske in jih zato ne prikazuje v Explorerju. *NIX sistemi jih pa seveda vidijo. *NIX sistemi uporabljajo dot files/folders in jih *NIX sistemi ne prikažejo, Windows jih pa. Vzameš USB ključ, ga vklopiš v Windows mašino in vidiš .Trash, ..., priklopiš na npr. Maca in vidiš desktop.ini in podobno. To bi morali standarizirati. ![]() |
|||||||
![]() |
|||||||
![]() |
|||||||
![]() |
|||||||
Najbolj enostavna rešitev... ![]() |
|||||||
![]() |
|||||||
Ko bi le blo tako enostavno ... ![]() Ok, torej če povzamem: Trenutno ni variante, da bi šumniki narejeni na macu (ali linuxu) delali na XPjih. In očitno ni nobenega heka, ki bi to omogočil. Je pa zanimivo, ko pravite, da Windowsi snemajo v cp1250. Kot sem preveril, to sploh ne drži. Namreč če NTFS disk priklopim na XPje, ki nimajo pojma o 1250 (npr Ruski ali Japonski; pa ne me narobe razumet, podpora za cp1250 ni vklopljena, čeprav jo sistem pozna) se šumniki na teh sistemih vseeno pokažejo v datotečnem sistemu. Malo sem gledal, pa kot kaže NTFS-3G zapisuje v UTF8, a mogoče obstaja kak hek, da bi vklopil goli Unicode? @borut-t: Glede na to, da sva iz istega konca, a bi šla na en pir? Da mi malo razložiš te sistemske finte. ![]() |
|||||||
![]() |
|||||||
Seveda je varianta, locale je treba nastavit na UTF-8 pa bo. Na Linuxu imam nastavljen en_US.utf8, mountan disk preko NTFS-3G (brez kakšnih posebnih parametrov) in deluje vse brez problemov - šumniki na Linuxu in XPjih. Na OSXu bi moralo bit enako, poglej man page od locale(1). Poglej še na http://www.ntfs-3g.org/support.html#locale tam omenjajo locale opcijo, ki naj bi jo NTFS-3G uporabil pri mount-u (fstab). |
|||||||
![]() |
|||||||
Nisi razumel.... ![]() Mene še vedno zanima 16 bitno zapisovanje v datotečni sistem. |
|||||||
![]() |
|||||||
Mogoče nisem dobro obrazložil. Najprej: UTF8 je kodiranje, Unicode pa sam po sebi ni 16 biten. Windows Unicode je sicer ena od implementacij, ki pa uporablja UTF-16, gre pa se vedno za encoding. Windowsi zapisujejo fajle v NTFS-Win32, NTFS-3G pa jih zapisuje po NTFS-POSIX formatu, ampak *imena* fajlov bi pa še vedno morala biti v UTF-16 (lahko da se motim, ampak ne vem, kako bi drugače sploh kaj delalo). Ko narediš nov fajl pod Linux/OSx-om, se ime fajla skonvertira iz trenutnega codepage-a v UTF-16 in tukaj imaš po mojem problem. Če si nastaviš locale na UTF-8 ali pa npr. na slovenski codepage, bi se morali fajli pravilno kreirat (jaz sicer preferiram UTF8, ker potem nisi omejen na določen codepage) Upam da sem bil tokrat bolj razumljiv ![]() |
|||||||
![]() |
|||||||
No, še košček kode iz NTFS-3G driverja: static int ntfs_fuse_create(const char *org_path, dev_t type, dev_t dev, const char *target) { [....] /* Generate unicode filename. */ name = strrchr(path, '/'); name++; uname_len = ntfs_mbstoucs(name, &uname); [....] Funkcija pa počne tole: ntfs_mbstoucs - convert a multibyte string to a little endian Unicode string |
|||||||
![]() |
|||||||
|
|||||||
![]() |
![]() |
![]() |
![]() ![]() ![]() |