PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Locales php erkennt keine Symbole im Namen


Bösewicht
2015-08-30, 01:15:39
Datenbank ist auf utf 8
Ich lese mit glob("*") as $order
ein Ordner aus und Speicher das Ergebnis in $datei
Das Script Funktioniert doch sobald ein zeichen wie dieses hier
▶▶▶▶▶▶▶▶▶▶▶ im Name vorkommt erkennt php das Zeichen nicht und macht ein ? daraus.
Das ganze Funktioniert auf meinem Webspace auch ohne Probleme, aber genau das Selbe Script unter xampp findet die Datei nicht weil das Script ?Dateiname.zip verarbeiten möchte und die gibt es halt nicht.

Muss ich da was in der php.ini einstellen oder kann ich das auch im Code irgendwie umgehen?
Weiß auch nicht so recht wonach ich suchen soll weil UTF-8 als default_charset in der ini Grund vor eingestellt ist.

edit:
In der Datei doppelt und dreifach
<?php Header("Content-Type: text/html; charset=utf-8");
?>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8"/>

htaccess
AddDefaultCharset utf-8
<Files ~ "\.html?$">
Header set Content-Type "text/html; charset=utf-8"
</Files>
AddCharset utf-8 .html .css .php .txt .js

Defaults in httpd.conf und so weiter probiert aber ich glaube Problem liegt wo anderst er gibt ja utf 8 als Default Charset an.

Bösewicht
2015-08-30, 02:34:04
hmm schon komisch
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8"/>
<meta charset="utf-8" />
<?php
include_once('config.inc.php');
echo "Willkommen Jens";

echo "<br /><br />";
echo "▶";
echo "▶";
echo "▶";
echo "▶";
echo "▶";
echo "♥, ©, ®, ";
Ausgabe beim Code
▶▶▶▶▶♥, ©, ®,
ordner1
4GCMBNR4.txt
? Live @ music - 2014
excel.php


? Live @ music - 2014

richtig wäre
▶ Live @ music - 2014


warum zeigt er alle Zeichen an aber hier
foreach ($dateien as $file) {
if (is_dir($file)){
} else {
echo $file."<br />";
kommt das ▶ nicht durch?
So langsam habe ich das Gefühl ich bin zu blöd für so was...
Immer die Gleichen Fehler, local geht nicht auf Server schon
Im einen Browser geht es im anderen nicht
Online ja offline nein also irgendwie hab ich da so meine Probleme :frown:

edit:
$alledateien = scandir($dir); //Ordner "files" auslesen
print_r($alledateien);

Ausgabe:
Array ( [0] => . [1] => .. [2] => ? Mamma Mia - Gimme Gimme Gimme
Hier ist der Fehler, scan dir scannt mein ordner aber das Symbol wird nicht in das Array $alledateien gepackt aber warum nur auf mein Webspace geht es und schaut dort so aus
▶ Mamma Mia - Gimme Gimme Gimme
xampp neu installiert und es hilft alles nichts warum nur warum :mad:

Bösewicht
2015-08-30, 12:56:55
Wenn ich drüber nachdenke die größte Auffälligkeit ist der Linux - > Windows Unterschied.
Ich könnte ja fast wetten das Linux mit diesen komischen Sonderzeichen weniger Probleme hat als Windows 7.
Kennt sich da keiner mit aus?

edit:
Ja nun verstehe ich wieso sich manch einer über Windows Dateiverwaltung ärgert... gut zu wissen das Windows das Zeichen nicht verarbeiten kann das entfernt mich als Fehlerquelle und
das macht mich wieder etwas happy...
Doch nun hab ich mich 2 Tage im Kreis gedreht und am Ende ist nichts bei rausgekommen.. wirklich doof.
Ich hab mich über die Monate mit Raspberry, Tablets und Minicomputer eingedeckt und es wird auch ein Linux Server als Home Cloud kommen aber für dem Moment Hilft mir das leider
wenig

RattuS
2015-09-02, 19:51:32
Das gehört zu den Schwächen von PHP: Unicode. Einige APIs, besonders unter Windows, arbeiten nur mit ANSI. Da wirst du mit PHP5 auch kein Licht mehr sehen.

Bösewicht
2015-09-03, 22:45:05
was ist denn da so aktuell in Mode api und Sprache mäßig?
Das File Problem werde ich in Zukunft mit meinem Raspberry lösen und mit ihm da eine weitere ebene integrieren der erledigt was Windows nicht Schaft aber ich bin schon an anderen dingen Interessiert, Aktuell frag ich mich ob vb oder c++ nicht besser wäre.
Hab mich da bis jetzt nicht ran getraut weil ich es als zu schwer einschätze... aber was hält mehr auf als alles andere?
Ohne Ende Einschränkungen!

RattuS
2015-09-04, 17:20:31
Welche Aufgaben willst du denn lösen? Geht es ums Web oder Apps - Desktop oder Mobil?

Lokadamus
2015-09-04, 18:21:34
Aktuell frag ich mich ob vb oder c++ nicht besser wäre.Warum? Du bist einfach über das alte Problem zwischen
DOS (437 (https://en.wikipedia.org/wiki/Code_page_437), 851 (https://en.wikipedia.org/wiki/Code_page_851)) <=> Windows (1250 (https://en.wikipedia.org/wiki/Windows-1250)) <=> UTF-8 (UTF-8 (https://en.wikipedia.org/wiki/UTF-8)) gestolpert.

DOS ist heute uninteressant, aber Windows <=> UTF 8/16 (https://en.wikipedia.org/wiki/UTF-16) wird es wohl noch einige Zeit geben.