Sorry wenn die Frage noob klingt. Mein Problem ist, dass ich eine Textdatei habe und die Daten in die Datenbank importieren muss.Wie teilt man eine Unicode-Zeichenkette durch ein spezifiziertes Trennzeichen in PHP auf?
Der Lesevorgang ist in Ordnung, wenn ich die Zeile print_r
die richtige ist.
Dann muss ich es durch den Tabulator (\ t) Trennzeichen teilen. Dann sind alle Unicode-Zeichen gebrochen.
Hier ist, wie ich versucht:
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8>
<title>Test page for project XY</title>
</head>
<body>
<h1>Test Page</h1>
<pre>
<?php
include 'ChromePhp.php';
ChromePhp::log('Start read file!');
ini_set("default_charset", 'utf-8');
$handle = fopen("input.txt", "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
// process the line read.
print_r($line); // if print the $line here, it's fine
$myArray = preg_split("/[\t]/", $line); //=> broken unicode, adding u not work
$myArray = explode("\t", $line);//=> same
print_r($myArray);
}
fclose($handle);
} else {
// error opening the file.
// ChromePhp::log('Cant open file!');
print_r ('Cant open file!');
}
?>
</pre>
</body>
</html>
Update: ich dies als Vorschläge versucht, aber immer noch nicht :(
mb_internal_encoding("UTF-8");
mb_regex_encoding("UTF-8");
$tab="\t";
$myArray=(mb_split($tab,$line));
print_r($myArray);`
Sie brauchen wahrscheinlich nur die Unicode-Modifikator: 'preg_split ("/[\ t]/u ", $ line)' – jeroen
Hallo, ich habe versucht 'preg_split ("/[\ t]/u ", $ Zeile)' aber Zeichen wie erscheint immer noch :( – Tiana987642
Ist Ihre PHP-Quelldatei auch utf-8? – RiggsFolly