Probleme mit PHP und mssql
Hi zusammen,
ich versuche derzeit auf eine mssql Datenbank mittels PHP zuzugreifen und eine Oberfläche zu schreiben.
Generell klappt das ganze leider nur halb.
Die Datensätze werden zwar gezogen aber leider werden Asiatische Schriftzeichen lediglich als ? angezeigt.
Derzeit nutzen wir noch eine Java Applikation für diese Aufgabe aber dort sollen einige Sachen geändert werden.
Leider haben wir den Sourcecode nicht mehr da der Kollege der das ganze damals programmiert hat nicht mehr im Unternehmen ist.
Daher und auch um es etwas schöner und einfacher zu machen wollte ich das ganze in PHP neu aufbereiten.
Hier ein Beispiel:
Text aus dem Java Programm:
Text der PHP Ausgabe:
Verwunderlich ist das die PHP Ausgabe mit der Ausgabe vom SQL Server Management Studio übereinstimmt. Auch dort werden die Asiatischen Schriftzeichen nicht angezeigt.
Zum Aufbau der Verbindung nutze ich
extension=php_sqlsrv_71_ts_x86.dll
extension=php_pdo_sqlsrv_71_ts_x86.dll
welche von M$ bereitgestellt werden.
Der Aufruf in der PHP Datei sieht wie folgt aus. Das ganze ist derzeit noch recht einfach gehalten weil ich erst die Zeichen hinbekommen möchte bevor ich weitermache.
Die Daten in der Tabelle liegen als nChar vor. Als Webserver nutze ich derzeit XAMPP 7.1.7. Die Datenbank liegt auf einem MSSQL Server 2012.
Das Ausgabe Charset auf UTF-8 umzustellen hat leider nicht funktioniert. Auch mittels iconv bin ich bisher nicht weiter gekommen.
Vielleicht hat von euch ja noch einer eine Idee.
Mit freundlichen Grüßen,
Invisan
ich versuche derzeit auf eine mssql Datenbank mittels PHP zuzugreifen und eine Oberfläche zu schreiben.
Generell klappt das ganze leider nur halb.
Die Datensätze werden zwar gezogen aber leider werden Asiatische Schriftzeichen lediglich als ? angezeigt.
Derzeit nutzen wir noch eine Java Applikation für diese Aufgabe aber dort sollen einige Sachen geändert werden.
Leider haben wir den Sourcecode nicht mehr da der Kollege der das ganze damals programmiert hat nicht mehr im Unternehmen ist.
Daher und auch um es etwas schöner und einfacher zu machen wollte ich das ganze in PHP neu aufbereiten.
Hier ein Beispiel:
Text aus dem Java Programm:
360免费WiFi 5.3.0.3070
Text der PHP Ausgabe:
360??WiFi 5.3.0.3070
Verwunderlich ist das die PHP Ausgabe mit der Ausgabe vom SQL Server Management Studio übereinstimmt. Auch dort werden die Asiatischen Schriftzeichen nicht angezeigt.
Zum Aufbau der Verbindung nutze ich
extension=php_sqlsrv_71_ts_x86.dll
extension=php_pdo_sqlsrv_71_ts_x86.dll
welche von M$ bereitgestellt werden.
Der Aufruf in der PHP Datei sieht wie folgt aus. Das ganze ist derzeit noch recht einfach gehalten weil ich erst die Zeichen hinbekommen möchte bevor ich weitermache.
<?php
header('Content-Type: text/html; charset=utf-8');
$count=1;
$server = "Server";
$info = array( "Database"=>"Datenbank", "UID" => "user", "PWD" => "passwort");
$conn = sqlsrv_connect( $server, $info);
$res = sqlsrv_query( $conn, 'SELECT DisplayName, DisplayVersion FROM White_List except SELECT DISTINCT DisplayName, DisplayVersion FROM Inv_AddRemoveProgram WHERE Hidden = 0 ORDER BY DisplayName, DisplayVersion' );
echo("<table>
<tr><td>Zeile</td><td>DisplayName</td><td>DisplayVersion</td></tr>");
while( $row = sqlsrv_fetch_array( $res, SQLSRV_FETCH_ASSOC) ) {
$name = $row['DisplayName'];
$version = $row['DisplayVersion'];
echo "<tr><td>".$count."</td><td>".$name."</td><td>".$version."</td></tr>";
$count++;
}
echo("</table>");
?>
Die Daten in der Tabelle liegen als nChar vor. Als Webserver nutze ich derzeit XAMPP 7.1.7. Die Datenbank liegt auf einem MSSQL Server 2012.
Das Ausgabe Charset auf UTF-8 umzustellen hat leider nicht funktioniert. Auch mittels iconv bin ich bisher nicht weiter gekommen.
Vielleicht hat von euch ja noch einer eine Idee.
Mit freundlichen Grüßen,
Invisan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 354797
Url: https://administrator.de/contentid/354797
Ausgedruckt am: 25.11.2024 um 13:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo,
$info = array( "Database"=>"Datenbank", "UID" => "user", "PWD" => "passwort", "CharacterSet" => "UTF-8" );
probieren.
Gruß c
$info = array( "Database"=>"Datenbank", "UID" => "user", "PWD" => "passwort", "CharacterSet" => "UTF-8" );
probieren.
Gruß c