Codepage van file/directorynaam achterhalen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • dion_b
  • Registratie: September 2000
  • Laatst online: 01:24

dion_b

Moderator Harde Waren

say Baah

Topicstarter
?????1

^

Nee, m'n keyboard is niet vastgelopen, dat is wat ik momenteel in m'n bash console zie en daar kan ik uitermate weinig mee :P

Situatie:
Heb onlangs muziek uit de Sovietunie zitten downloaden don't ask... iig is copyright geen issue :+. In Bash kreeg ik 'onzin' te zien. Bleek dat ik m'n terminal niet op Unicode had staan. Na overzetten op Unicode werd de helft van die onzin Cyrillisch, waardoor ik bijvoorbeeld Ария correct zag staan. Maar de andere helft is duidelijk op een andere manier geencodeerd, en het lukt mij niet om te achterhalen exact hoe.

Complicatie: ik zie verschillende dingen in mocp (ncurses-based media player) en op de console.

Het gaat primair om directorynamen, de filenames zijn soms gewoon in ASCII, maar soms ook niet. Grootste

Voorbeeld van hoogste directory, subdirectory en file in worst-case scenario in mocp:
?????1
1985 - ????? ???????
Àðèÿ - Ýòî ðîê (Ìàíèÿ âåëè÷èÿ)

Hetzelfde in de console bij ls:
?????1
1985 - ????? ???????
01-Eto rok.mp3

Wederom console, nu links van de prompt als ik in de directory zit:
�����1/1985
����� �������


Mijn vermoeden is trouwens dat wat ik in mocp zie ook nog met ID3-tags te maken heeft (eerste deel van de filename lijkt bijvoorbeeld verdacht op Ария ), daar wat aan doen is secundair, het gaat me primair gewoon om de filename in bash.


Enige tool die ik ken (of die ik bij het googlen kon vinden) om te achterhalen hoe text gecodeerd is, is file, maar die kijkt naar inhoud van files, niet naar de namen. Bij directories krijg ik "directory" als output, bij de files "binary". No shit sherlock :z

Op zich zijn de files niet corrupt, ik kan ze prima afspelen in mocp, maar het is wel zo lastig uitzoeken waar ik naar kijk, en ik kan alleen met copy/paste die dingen bewerken.

Iemand enig idee hoe ik kan achterhalen wat voor encodering deze file/directory names hebben?

OS: Xubuntu 11.10 (geupgrade vanaf 11.04) 32b desktop
Shell: gewoon default bash, geen modificaties aan bashrc

Grootste deel van de tijd log ik op deze bak in via putty vanaf Windowsgeval. Dat is ook waar ik bovenstaande stukken uit gecopy/paste heb. In putty heb ik UTF-8 ingesteld staan als codepage.

[ Voor 5% gewijzigd door dion_b op 20-12-2011 08:25 ]

Oslik blyat! Oslik!


Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 21-05 20:45
Bij mijn weten wordt karakter encoding door het filesystem bepaald, maar ik weet niet of dat altijd zo is. Ik heb vroeger tenminste nog wel karakter encodings geselecteerd bij het configureren van FS opties voor het kernel. Ik neem aan dat je muziek ~20jr oud is, dus zal het geen UTF zijn. Je zou kunnen proberen een filesystem te maken met ISO 8859-5 encoding (8 bit cyrillisch) en daar je files op zetten.
Heb je hier wat aan?

[ Voor 9% gewijzigd door Sir Isaac op 20-12-2011 10:03 ]


Acties:
  • 0 Henk 'm!

  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 04-10 16:22
Linus Torvalds:
In short: filenames are byte streams. Nothing more. They don't even have a
"character set". They literally are just a series of bytes.
Je kan proberen met "enca -L russian" te detecteren wat de encoding kan zijn (blijkbaar ISO-8859-5, maar uit jouw voorbeeld komt daar geen zinnige karakters uit voor zover ik kan zien). Met convmv of iconv kan je bestandsnamen converteren.

Acties:
  • 0 Henk 'm!

  • dion_b
  • Registratie: September 2000
  • Laatst online: 01:24

dion_b

Moderator Harde Waren

say Baah

Topicstarter
Had moeten vermelden dat ik 8859-5 al geprobeerd had, idd hooguit ander 'jibberish', zal morgen suggestie op ubuntuforum proberen

Oslik blyat! Oslik!


Acties:
  • 0 Henk 'm!

  • 0xDEADBEEF
  • Registratie: December 2003
  • Niet online
"file" (zonder parameters) heb je al geprobeerd, en "file --mime"? http://unixhelp.ed.ac.uk/CGI/man-cgi?file

Ook zou je CP1251 (of 1250) kunnen proberen: Wikipedia: Windows-1251 Wikipedia: Code page

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion." - Steven Weinberg


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Was het ingepakt?

RAR, ZIP, ACE, ISO, enz..? Of misschien een torrent of nfo of hash bestand met de namen er in? Daar wordt de character encoding beter in bewaard. Met filesystems heb je dat het filesystem zelf gaat bepalen hoe dingen er uit moeten zien, en dan zit je met rommel die je niet kan lezen :)
Pagina: 1