2017-08-29 1 views
0

Ich versuche, eine Zeichenfolge zu erstellen, aber ich habe Probleme mit der utf-8-Codierung (ich glaube?)UTF-8-Codierung Problem in PHP, Sonderzeichen

ich den Code unten bin mit einem String zu formatieren

$pre_subject = (strip_tags(html_entity_decode($temp_subject))); 
$pre_subject = str_replace('Â', '', $pre_subject); 
$pre_subject = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $pre_subject); 

Das Problem ist, dass anstatt das Ergebnis wie im ersten Satz unten erhalten, bekomme ich ein Ergebnis als die zweite.

Ich muss das Format als erstes Beispiel behalten, wie kann ich meinen Code dafür ändern?

+0

Können Sie den ursprünglichen Wert hinzufügen? – Hackerman

+0

@Hackerman Nun, ich habe nur ein Stück des Beispiels eingefügt, aber es wäre etwas wie: SHANGHAI Raum - Réunion SSC/ROC

 
2017-06-01 11: 002017-06-01 12: 0000 –

+0

Was möchten Sie erreichen? Nur weil 'ASCII // TRANSLIT // IGNORE' genau das tut, was du hast ... –

Antwort

0

Die Zeichenfolge hat UTF-8-Zeichen. Sie müssen sie entweder entschlüsseln oder demjenigen mitteilen, der es liest, um die UTF-8-Kodierung zu verwenden.

Also, das:

$pre_subject = (strip_tags(html_entity_decode($temp_subject))); 
$pre_subject = str_replace('Â', '', $pre_subject); // if this was trying to fix the problem, remove it 
$pre_subject = utf8_decode($pre_subject); 

Oder fügen Sie diese zu <head>:

<meta charset="utf-8"> 
+0

Großartig, noch eine Sache bitte, ich bekomme am Ende einen leeren Platz, und ich habe versucht, Trim zu verwenden, aber es wird nicht funktionieren, können Sie mir dabei helfen? –

+0

Können Sie es beheben? Nun, der Auszug, den Sie in den Kommentaren Ihrer Frage gepostet haben, zeigt, dass Sie etwas HTML haben, das diesen Raum ausgibt: '

 
', müssen Sie bekommen befreie das. – ishegg

+0

Ich überprüfte jetzt, dass es tatsächlich ein Fragezeichen in einer schwarzen Diamantbox erzeugt. –

0

Stellen Sie PHP-Header wie:

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

auch, wenn sie mit utf-8 handelt, Wenn Sie String ersetzen müssen, verwenden Sie mb_str_replace und nicht str_replace

+0

funktioniert leider nicht .. –