WinFuture-Forum.de: Php Codierung Problem - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Php Codierung Problem


#1 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

geschrieben 10. November 2009 - 18:43

nabend

ich hab ein problem mit php. kenn mich damit nicht so gut aus. ich hab ein eingabefeld und da geb ich nen text ein. zeilenumbrüche klappen und die schreibt der auch in ne textdatei.

wenn ich jetzt über php wieder diese textdatei öffne, deren inhalt in das textfeld schreibe wird sie korrekt angezeigt. speicher ich sie jetzt erneut ab in die datei, hab ich am ende jeder zeile ein "^M" ohne " stehen.

woher kommt, ist da ne codierung falsch eingestellt?

*edit* also das ist ^M als ascii code 13. das hab ich jetzt raus. im grunde würd' ich das ja einfach ersetzen, ABER ^M ist auch ein zulässiges Wort in meinem Text... *grml* wie könnte man das lösen oO

danke im vorraus,
lod14

*edit 2*
der fehler ist total komisch
Angehängtes Bild: problem.png
da sind die ^M. ich hab jetzt testweise mal ^M direkt in das textfeld eingetippt.
das wird korrekt weiterverabeitet, spricht es wird **M draus gemacht.

*eigentlich* müsste der die anderen ^M auch durch **M ersetzen. DAS tut der aber nicht.
die ^M stehen auch nicht direkt in der datei drinne, die php rausschreibt.
die datei wird weiterverarbeitet von java. und das, was java da rausschreibt, da stehen dann hinterher die ^M drinne... hääää=?

Dieser Beitrag wurde von LoD14 bearbeitet: 10. November 2009 - 21:07

0

Anzeige



#2 _lustiger_affe_

  • Gruppe: Gäste

geschrieben 10. November 2009 - 22:37

^M ist nichts anderes, als das Lineende-Zeichen. Mag sein, dass PHP und Java bei dir unterschiedliche Lineende-Zeichen machen, gibt da ja ein paar (CR, LF, ...) - in die Richtung müßtest du also mal schauen(genauer geht's von mir nicht, ich hab weder von Java noch von PHP Ahnung).
0

#3 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

geschrieben 10. November 2009 - 23:25

ich ja auch nicht XD

hab grad noch was interessantes gesehen.
ich schreib mit java die datei.
lese die direkt weider ein und mach ein string-replace auf ^M
am ende stehen die ^M aber immer noch drinne, wenn ich die mit vi öffne oO

meine idee wäre jetzt (gepfuscht) da das über ein script aufgerufen wird, irgendwie mit sed oder tr die sequemz "^M" zu ersetzen aus dem script raus. nur ich komm mit den befehlen net klar.
0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 11. November 2009 - 08:02

Welches Problem hast du überhaupt mit diesen Zeichen? Mehr als nur, dass sie dort stehen? Ich kenne das Phänomen, wenn ich Dateien unter einem anderen System öffne. Auf einem werden sie angezeigt auf dem anderen nicht. Allerdings verursachen sie keinerlei Probleme, da sie lediglich angezeigt werden.
0

#5 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

geschrieben 11. November 2009 - 16:42

das problem ist, dass genau in den zeilen, wo die ^M stehen, der python interpreter aussteigt mit nem fehler. nehm ich die ^M von hand raus über vi, läuft der interpreter wieder durch. dh, der muss die irgendwie sehen. ist ziemlich ärgerlich, denn das system soll soll so scripts automatisiert ausführen und das ergebnis bewerten, wenn die alle als "nicht kompiliert" im system stehen... schlecht :lol:
0

#6 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 11. November 2009 - 19:43

OK, dann stellt sich als nächstes die Frage nach dem Zeichensatz. Mit welchen Zeichensatz schreibst du die Datei und mit welchem liest du sie aus? In der Regel fährst du gut, wenn du alles auf UTF-8 stellst.
0

#7 _lustiger_affe_

  • Gruppe: Gäste

geschrieben 11. November 2009 - 21:15

Zitat

In der Regel fährst du gut, wenn du alles auf UTF-8 stellst.
An sich korrekt, nur ist das mit Python-2.6x sehr mühsam, wenn überhaupt gut umzusetzen, da wäre Python-3.x besser, allerdings ist das halt aus guten Gründen noch in kaum einer Distribution (als Standard) dabei.
0

#8 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 11. November 2009 - 23:31

Zitat

nur ist das mit Python-2.6x sehr mühsam

# -*- coding: utf-8 -*-

Ach Quatsch. :)
0

#9 Mitglied ist offline   LoD14 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.931
  • Beigetreten: 04. Mai 03
  • Reputation: 45
  • Wohnort:Hennef bei Köln

geschrieben 11. November 2009 - 23:57

also aus php raus als UTF 8 speicher funzt net. da das gleiche problem.
0

#10 _lustiger_affe_

  • Gruppe: Gäste

geschrieben 12. November 2009 - 14:08

@Witi, IIRC deklariert Python damit aber nur das jeweilige File, damit man sich die ganen u""-Strings sparen kann und nicht auch sämtlichen Output?!
0

#11 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 13. November 2009 - 07:37

@FM War eigentlich auch ein Beispiel dafür wie mühselig bzw seltsam es ist die Kodierung für eine py-Dateien einzustellen. :rolleyes:

@LoD14 Wie schreibst du denn die Zeilenumbrüche in die Datei?
0

#12 _lustiger_affe_

  • Gruppe: Gäste

geschrieben 13. November 2009 - 13:45

Ok, missverstanden ;(
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0