2017-06-29 7 views
1

Ich habe ein Projekt auf lokalen Webserver, und alle Dateien sind in UTF-8, auch SQLite-Datenbank in UTF-8, und es ist ok mit deutschen Buchstaben a, o, u mit Punkten (Umlaute), aber auf dem Hosting werden sie , es ist definitiv, wenn ich verschiedene Arten von Dateien mit verschiedenen Codierungen hatte, aber es funktioniert nicht nur auf Hosting, warum?Warum wird die Codierung geändert?

header('Content-Type: text/html; charset=utf-8'); 
require("dbconnect.php"); 
... 

    $sql = "SELECT * FROM customers ORDER BY CREATED " . $order . " LIMIT(10)"; 
    $query = $dbo->prepare($sql); 
    $query->execute(); 
    $result = $query->fetchAll(); 
    renderTable($result); 

... 

function renderTable($queryResult) { 
... 
echo "<td>",ucwords(strtolower($row['CUSTNAME'])),"</td>"; 
... 

On hosting and on test server

+0

Nun, ich würde zuerst überprüfen, ob Hosting-Datenbank die gleiche Codierung verwendet, überprüfen Sie in bestimmten Datenbanktabelle, wenn es als "o" oder "?" gespeichert ist. Initialisieren Sie eine Db-Verbindung auch als UTF-8? –

+0

Überprüfen Sie zunächst, ob das gesamte Hosting diese Codierung verwendet. Vielleicht versuchen Sie, Ihren Hoster wegen dieses Problems zu kontaktieren, da Sie alles UTF-8 laufen lassen und es auf Ihrem eigenen Host überprüft haben. – hakre

+0

@AntonisTsimourtos speichert als o, Hoster ist nicht mein, so kann nicht überprüfen, gibt es eine Lösung, alle mit htaccess zu setzen? –

Antwort

0

Haben Sie schon versucht, diese in dbconnect.php

$dpo->exec("set names utf8"); 
+0

Ja, es ist in dbconnect.php 'code'try { $ dbo = neues PDO (" sqlite: ../ data/clients.db "); $ dbo-> Abfrage ("SET NAMES 'utf8'"); $ dbo-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION); } catch (PDOException $ e) { echo $ e-> getMessage(); } 'code' –

+0

Dies ist kein SQLite-Befehl. –

+0

Haben Sie das alles probiert? [link] https://www.toptal.com/php/a-utf-8-primer-for-php-and-mysql Ich begegne dieses Problem vor mit Vietnamesisch und habe viele Dinge getan, um es zu beheben –

0

Dank allem war es ein strtolower eingebaute Funktion, ich benutze es Kappen Namen allgemein zu ändern, und Für Unicode wird empfohlen, mb_strtolower zu verwenden

Verwandte Themen