sonderzeichen werden gelöscht........

S

supersucker

Foren Gott
hi zusammen,

ich hab folgendes (hoffentlich triviales) problem bei dem ich nicht wirklich weiterkomme:

erstelle ich auf meinem rechner irgendwelche dokumente, egal ob binär (also OO bspw.) oder ascii werden die zeichen öäü korrekt dargestellt.

hole ich mir jedoch von anderen rechner irgendwelche ascii-dokumente werden mir in diesen dokumenten immer genau diese zeichen "zerhauen", bzw. in den meisten fällen werden sie einfach gelöscht. aus "hölle" würde also bspw. hlle werden.

dies ist bei jedem texteditor der fall, egal ob kate, nedit usw....beim eclipse-editor werden mir dann beispielsweise immer die kommentare meiner kollegen um die sonderzeichen gestutzt, was abgesehen davon das es nervig ist auch nicht passieren darf, da ich die nach dem editieren wieder auf unserem subversion-server einchecken muss.

ich hab zwei sprachen auf dem system (Fedora Core 4) installiert:

- US englisch
- deutsch

deutsch ist die default-sprache die das system verwendet, kuck ich im kontrollzentrum unter
"Land / Region & Sprache" sehe ich das deutschland als land ausgewählt und deutsch die systemsprache ist (auch meine kde-menüs sind komplett in deutsch)

so, und nun hab ich keine ahnung warum das nicht klappt, ich finde keine weiteren einstellungen die damit was zu tun haben........

habt ihr irgrendwelche ideen?
 
wie holst du denn die dateien auf deinen rechner, mit ftp oder ...?
und sind diese sonderzeichen wirklich aus der datei verschwunden, oder werden sie bloss nicht angezeigt. mach mal nen hexdump von einer solchen datei:
Code:
od --format=x meinedatei.txt
 
wie holst du denn die dateien auf deinen rechner, mit ftp oder ...?

oh, ne, über smb von windowsrechnern, sorry, das hätte ich vielleicht im post erwähnen sollen...

und sind diese sonderzeichen wirklich aus der datei verschwunden, oder werden sie bloss nicht angezeigt. mach mal nen hexdump von einer solchen datei:


meine testdatei umlauttest enthält nur die 6 zeichen:

ein

Code:
od --format=x umlauttest

ergibt:

Code:
0000000 a4c3a4c3 b6c3b6c3 bcc3bcc3
0000014

kann das was damit zu tun haben das ich mir die dateien von windowsrechnern hole?
oder ist das ein generelles zeichensatzproblem?

bin immer noch ratlos, danke für jede hilfe
 
naja wie du siehst ist das ein ein 2-byte zeichensatz, also schätz mal unicode.
damit kann dein linux wohl nix anfangen
 
naja wie du siehst ist das ein ein 2-byte zeichensatz, also schätz mal unicode.
damit kann dein linux wohl nix anfangen

äh, das meinst du gerade nicht ernst oder?

1. im ersten post hatt ich geschrieben:

erstelle ich auf meinem rechner irgendwelche dokumente, egal ob binär (also OO bspw.) oder ascii werden die zeichen öäü korrekt dargestellt.

dann dürfte ich äöü ja auch bei den von mir erstellten docs nicht sehen.......

2. ich hab Fedora Core 4:

Unicode: Red Hat ist vollständig auf Unicode umgestellt. Per Default verwenden so-
wohl Dateinamen als auch Textdateien UTF-8.

und ich glaube nicht dass es überhaupt noch distris gibt ohne unicode-unterstützung....

noch irgendwelche ideen?
danke soweit!
 
na erstell mal auf deinem rechner ne datei mit ääööüü drin und mach dann nen hexdump, bin mir sicher dass das ganz anders aussieht.
 
Hallo
Erstens hat die Tatsache, dass dein Linux utf8 beherrscht nix damit zu tun, ob es auch entsprechend konfiguriert ist genau das zu tun.

Zweitens gibt es einen großen Unterschied zwischen utf8 und den unter Wintendo oft per default verwendeten cp1252.

eventuell hilft dir ja beim smb mounten die Option:
-ocodepage=cp850 oder -ocodepage=cp1250 oder bei ntfs auch nls=cp1252
jenachdem was dort verwendet wird.

Gruß Wolfgang

Nachtrag:
Du musst natürlich auch die entsprechenden Schriften zur Verfügung haben!
 
Zuletzt bearbeitet:
na erstell mal auf deinem rechner ne datei mit ääööüü drin und mach dann nen hexdump, bin mir sicher dass das ganz anders aussieht.

ok, hab zwei dateien:

- umlauttest_local ist bei mir erstelle
- umlauttest_win ist auf nem win-server erstellt und dann auf meinen rechner kopiert
- beide dateien enthalten die zeichenfolge "ääööüü"

Code:
od --format=x umlauttest_local
0000000 a4c3a4c3 b6c3b6c3 bcc3bcc3
0000014

Code:
od --format=x umlauttest_win
0000000 f6f6e4e4 0a20fcfc
0000010


Erstens hat die Tatsache, dass dein Linux utf8 beherrscht nix damit zu tun, ob es auch entsprechend konfiguriert ist genau das zu tun.

Zweitens gibt es einen großen Unterschied zwischen utf8 und den unter Wintendo oft per default verwendeten cp1252.

eventuell hilft dir ja beim smb mounten die Option:
-ocodepage=cp850 oder -ocodepage=cp1250 oder bei ntfs auch nls=cp1252
jenachdem was dort verwendet wird.

ok, eingesehen, das mit den mount-optionen konnte ich noch nicht ausprobieren, aber unabhängig davon, gibt es nicht einen weg wie man das automatisieren kann das von win importierte dokumente ohne verlust von zeichen in den richtigen zeichensatz konvertiert werden?
oft muss ich auch über ssh, ftp usw auf die win-rechner zugreifen....

ehrlich gesagt verstehe ich nicht das man sowas überhaupt patchen muss, das scheint ja ein standardproblem zu sein was schon unzählige (deutsche) linuxnutzer in windows-umgebungen gehabt haben müssen...

@wolfgang
wie machst du das denn? oder tritt bei dir das problem nicht auf? oder greifst du nur über smb auf win-rechner zu mit den von dir oben genannten optionen?

danke für jede hilfe.........
 
supersucker schrieb:
ok, hab zwei dateien:

- umlauttest_local ist bei mir erstelle
- umlauttest_win ist auf nem win-server erstellt und dann auf meinen rechner kopiert
- beide dateien enthalten die zeichenfolge "ääööüü"

Code:
od --format=x umlauttest_local
0000000 a4c3a4c3 b6c3b6c3 bcc3bcc3
0000014

Code:
od --format=x umlauttest_win
0000000 f6f6e4e4 0a20fcfc
0000010
wenn das so stimmt, dann hast du lokal einen 2-byte zeichensatz und auf windows einen 1-byte zeichensatz. in deinem früheren posting hast du geschrieben deine windows datei enthält die 2-byte zeichen (a4c3a4c3 b6c3b6c3 bcc3bcc3)? oder hab ich da irgendwas falsch verstanden?
 
wenn das so stimmt, dann hast du lokal einen 2-byte zeichensatz und auf windows einen 1-byte zeichensatz. in deinem früheren posting hast du geschrieben deine windows datei enthält die 2-byte zeichen (a4c3a4c3 b6c3b6c3 bcc3bcc3)? oder hab ich da irgendwas falsch verstanden?

ähm, woran sehe ich das? bzw. woran siehst du das?
ich hab mich mit den verschiedenen zeichensätzen noch nie rumschlagen müssen und weiss mit der hexausgabe nichts anzufangen.
das win-system auf dem ich die datei erstellt habe win 2k sp4 wenn das irgendwie von belang sein sollte.
 
supersucker schrieb:
@wolfgang
wie machst du das denn? oder tritt bei dir das problem nicht auf? oder greifst du nur über smb auf win-rechner zu mit den von dir oben genannten optionen?

danke für jede hilfe.........

Hallo
Ich greife weder über smb noch sonst irgendwie auf wintendo - Kisten zu. Insofern steht das Problem recht selten, da ich in meinem Umfeld auch wenig mit solchen Daten zu tun habe. Maximal ein paar wenige per Mail, die in die Tonne trete, wenn sie nicht mit dem verwendeten Zeichensatz gekennzeichnet sind.
-M$OJE ist ein Spitzenkanditat dabei, mit falschen oder fehlenden Angaben im Header.
Für den verbleibenden Rest verwende ich iconv oder recode, oder manchmal einen perl-Einzeiler in der shell.

iconf oder recode sollten eventuell auch für dich hilfreich sein.

Wenn du auf Datenaustausch mit Wintendo-Kisten angewiesen bist, dann hast du theoretisch mehrere Möglichkeiten.

Du könntest die Benutzer der M$Wintendo Kisten darauf hinweisen, UTF8 zu verwenden.
Diese Möglichkeit wird praktisch wohl eher nicht funktionieren. ;)

Du verwendest zum Bearbeiten einen Editor, der den in den Datein verwendeten Zeichensatz zum Editieren benutzt.
vi/kate etc. können das.

Du recodest die Daten vor der Bearbeitung und codierst diese wieder zurück beim Speichern. (siehe mein Hinweis auf die Tools)

Du verwendest als locale Einstellungen iso8859-1, was der leidlichen cp1252 sehr nahe kommt.
Das willst du nicht wirklich ;)

Diese Programme (recode iconv) lassen sich in Skripte einbauen, um das zu automatiesieren.


HTH
Gruß Wolfgang
 
supersucker schrieb:
ähm, woran sehe ich das? bzw. woran siehst du das?
das ist ja mal ganz einfach. deine datei enthält 6 zeichen (ääööüü), laut hexdump werden dafür im ersten fall 12 bytes verbraucht (a4c3a4c3 b6c3b6c3 bcc3bcc3) ergibt also 2 byte pro zeichen, im zweiten fall werden 8 byte verbraucht (f6f6e4e4 0a20fcfc), davon musst du 2 byte abziehen (0a20), das sind ein abschliessendes space und ein newline zeichen, die sich da eingeschmuggelt haben, bleiben 6 byte, ergo 1 byte pro zeichen.
keine magie dahinter:D
 
@ninguno

danke, das klingt einleuchtend.....:-)

@wolfgang

ebenso danke, ich hab das problem jetzt dadurch gelöst das ich bei jedem editor den ich benutze (nedit, kate, eclipse-editor und nvu) einfach den von dir vorgeschlagenen zeichensatz iso8859-1 verwende .
ich hab bei den systemeinstellungen nichts gefunden wo man das systemweit festlegen könnte, gibt es da eine config-datei für?

danke soweit.........
 
Zurück
Oben