2016-10-31 3 views
0

Mit Ubuntu mit php Ich stehe vor einem allgemeinen Problem, zu dem ich keine Lösung gefunden habe. Ich lade eine PDF-Datei hoch, die ich in eine Textdatei konvertiere (mit ImgMagick + Tesseract).PHP-Codierung Problem mit PDF-Dateien

$output = shell_exec('convert -density 300 ' . $fichier . ' ' . $fichier_noExt . '.png'); 
    $output = shell_exec('tesseract ' . $fichier_noExt . '.png ' . $fichier_noExt . '.txt'); 

Als ich dies tun:

$file = fopen($fichier_txt.'.txt', 'r+'); 
echo $file; 

ich einige '°' anstelle von '°', 'â,¬' anstelle von '€' und 'Ã ©' anstelle von ' é '. Ich weiß, es ist ein Codierung Problem, aber ich kann es nicht finden.

Antwort

0

Oh lieber ...

ich nur vergessen, das oben auf meiner Datei hinzuzufügen:

header('Content-Type: text/html; charset=utf-8'); 

Es funktioniert jetzt, sorry für Ihre Zeit zu verlieren, aber ich brauchte etwas frischen Look :).

Einen schönen Tag und cya!

0

Wenn Sie eine UTF-8-String Ergebnis drucken möchten, können Sie dies versuchen:

$file = fopen($fichier_txt.'.txt', 'r+'); 
while(!feof($file)){ 
echo mb_convert_encoding(fread($file, 1024), 'UTF-8', mb_detect_encoding($file)); 
} 
fclose($file); 

Dokumentation:

http://php.net/manual/fr/function.mb-convert-encoding.php

http://php.net/manual/fr/function.mb-detect-encoding.php

Auch können Sie verwenden dos2unix und mac2unix, um eine Datei zu konvertieren, verwenden Sie diese benutzerdefinierte Funktion:

function convertFiles($file) { // pass complete path to file 
    if (shell_exec("dos2unix $file") !== FALSE) { 
     if (shell_exec("mac2unix $file") !== FALSE) { 
      return TRUE; 
     } 
     else { 
      return FALSE; 
     } 
    } 
    else { 
     return FALSE; 
    } 
} 

Sie thoses Befehl mit installieren können apt-get http://xmodulo.com/how-to-install-dos2unix-on-linux.html

Schließlich installieren, wenn Sie es auf der Webseite angezeigt werden, vergessen Sie nicht meta charset Inhaltstyp festlegen:

header('Content-Type: text/html; charset=utf-8'); 

oder html version

<meta http-equiv="Content-type" content="text/html; charset=utf-8" /> 
+0

Ich habe versucht, Ihr Stück Code wie folgt: fopen ($ Datei); while (! Feof ($ datei) && ($ buffer = fgets ($ datei, 4096)! == false)) { echo mb_convert_encoding (fread ($ datei, 1024), 'UTF-8', mb_detect_encoding ($ Datei)); echo '
'; Echo $ Puffer; } fclose ($ datei); Und ich bekomme immer noch die seltsamen Zeichen in meinem localhost-Ausgang. Ich habe versucht, set_internal_encoding ('UTF-8'), aber vergeblich. Wenn ich code: echo mb_detect_encoding ($ datei) gibt mir nichts zurück ... Ich überprüfte die Codierung meiner PHP-Datei (-> ASCII) und meiner Textdatei (-> ASCII). Ich bin hier irgendwie verloren! –

+0

Sorry über Code in Kommentaren, aber ich denke, wenn ich den Antwortteil verwendet hätte, wäre mein Beitrag gelöscht worden, also ... –

+0

versuchen, Unix-Befehl zu installieren: dos2unix und mac2unix, und dann in Shell_exec ausführen, bevor Sie es mit PHP öffnen. schau dir auch iconv an :) – Fky