arvizturo tukorfurogep - ekezet para

Fórumok

Hola hola!

Atemeltem egy magyar win 98 alol egy JAVA nyilvantarto programkat binux ala. (Ubuntu)
Az a gond, hogy az ekezetes karakterek helyen csak negyzeteket jelenit meg.
Ugy telepitettem az Ubuntu-t, hogy full magyar legyen.
Amugy a linux alatt beirt ekezetes karaketerek mar jol jelennek meg.
Mit kene meg tennem, hogy a regiek is jok legyenek?
Esetleg valami command line dos2unix cucc or whatever?
Maga a program szimpla text file-okban tarolja az adatokat.

Hozzászólások

utf8-ra kell konvertálni. (A mikéntet nem tudom, keresd meg!)

A rendszer folyamatosan végez karakterkészlet-átalakításokat, ezért csak az a meglepő, hogy kevesen tudják, hogy a glibc alapba telepíti az iconv programot.

iconv-val probalkoztam, es latom is, hogy csinalja az atalakitast jol.
hasrautve, ahogy logikusnak tunt probaltam a kovetkezoket:

input: (semmi) output: UTF-8
input: 852 output: UTF-8
input: iso8859-2 output: UTF-8

egyelore egyik sem hozta meg a kivant eredmenyt, habar tovabbgyurtek az ekezetes karaktereket, tehat valami azert tortent.

vajjon hogy tudnam kitalalni, hogy mi lehetet a file eredeti formatuma?

Szerintem inkabb ilyesmi kene, hogy export LANG=... meg LC_...=..., attol fuggoen hogy mi az aktualis nyelv es milyen a terminal (felteve ha a java-s cucc terminalban dolgozik), de a terminal kodolasat is lehet explicit allitani (xterm -en ). Elso kozelitesben ezt probalnam ki, mielott a teljes forrast atirnam.

Ha hozzáférsz a java parancssorhoz, amivel a VM-et indítod, akkor a -Dfile.encoding=Latin-2 (a paraméter neve tuti így van, a karakterkódolásé nem biztos) be lehet állítani a JVM áltam megnyitott szövegfájlok alapértelmezett enkódolását. Persze ezzel a béna múlthoz fogsz visszahúzni, ami buta dolog.
Ez a tudás azonban arra is jó lehet, hogy ha mégis magyar windows alól használnád a már átkonvertált fájljaidat, akkor ott meg a -Dfile.encoding=UTF-8 paraméterrel jól fognak megjelenni a modern kódolású cuccok.

na ilyenekhez en mar nem ertek.
ay alapfelallas az, hogy be-mount-oltam a win98-as wincsit es egy szimpla cp-vel atmasolt a programot.
ha a linuxon belenezek az adatokat tartalamzo szoveges file-ba, akkor a win98-on irt ekezetes karakterek helyen csak ? van, amit linux-on irtam bele, az tokeletesen megjelenik ekezettel egyutt.
na innen nem tudok egyelore tovabblepni.
eddig barmibol barmi probaltam konvertalni iconv-*val, az nem lett jo.
vagy mar az atmasolassal elbasztam volna?

Szerintem a másolásnál nem lehet elbaszni, mert a másolás az másolás. Ha van olyan fájlod, ami nem tartalmaz üzleti titkokat, azt oszdd meg, akkor elképzelhető, hogy valaki összerak neked egy teljes felparaméterezett parancssort is, ami konvertál jól

ami engem erdekelne:
-linux alatt locale parancs milyen ertekkel ter vissza.
-nehany sor a fajlbol, amiben kerdojelek vannak.
2 esetet tudok elkepzelni:
-javas progi unicode kodolassal ment, linuxod meg valamilyen iso locale-lel fut.
-javas progi valamilyen iso-8859 kodolassal ment, linuxod meg utf8-as locale-lel megy.

Tyrael

na, ugy tunik megiscsak a masolas (mount) kornyeken lehetett a hiba.
visszamasoltam egy XP ala a cuccost es mar ott is negyzetkek vannak az ekezetek helyen.
lehet, hogy most hulyeseget fogok kerdezni, a mount-hoz nem kellett vola megadni valami kodlapra vonatkozo okossagot?

a fenti javaslatokat megsasolom, aztan beszamolok.

koszi mindenkinek!

Mint írták volt legott a másolás az másolás.
Linux alatt mag az ékezetes karakteres állomány neveivel lehet prolémád, de a beltartalmukkal nem.
Hiszen max nem text állománynakm hanem data nak ismeri fel.

file allomany
:)
mount kódlapos opcicók nem vonatkoznak az állományok beltaralmamára.
Esetleg nem leheteéő hogy valamilyen konverter progit rosszul paraméterezve futtattál rajta ?

-TamsA-

Ha átadod a tudásod neked attól még nem lesz kevesebb belőle..

vegulis ez segitett:

mount -o codepage=852,iocharset=8859-2,fat=32 source_device mount_point

iconv -f=8859_2 -t=UTF-8 source_file > destenation_file

az iconv-val ugyenzt probaltam amugy a mount parameterezese nelkul es ugy nem volt jo.