Heim  >  Artikel  >  Backend-Entwicklung  >  Was tun, wenn PHP Oracle verstümmelt ist?

Was tun, wenn PHP Oracle verstümmelt ist?

藏色散人
藏色散人Original
2020-07-25 10:10:452831Durchsuche

Lösung für verstümmelten PHP-Oracle-Code: Führen Sie zuerst „select * from V$NLS_PARAMETERS;“ über PLSQL aus, um den Zeichensatz von Oracle abzurufen.

Was tun, wenn PHP Oracle verstümmelt ist?

Empfohlen: „PHP-Tutorial

PHP Oracle Chinese verstümmeltes Problem

Wenn Sie eine Verbindung zu Oracle mit der Standardkonfiguration herstellen, werden Sie bei der Verarbeitung von Chinesisch normalerweise auf verstümmelte Zeichen stoßen. Tatsächlich wissen die meisten Leute, dass die Zeichensatzinformationen des Servers korrekt eingestellt werden müssen, bevor sich der Client mit dem Oracle-Server verbindet Der Client führt zuerst „select * from V$NLS_PARAMETERS;“ aus. Die Variable NLS_CHARACTERSET entspricht dem von uns benötigten Zeichensatz.

Die Methode von Das Festlegen des Zeichensatzes ist wie folgt:

Methode eins: Umgebungsvariablen vor der Verbindung festlegen

putenv("NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1");
$conn=oci_new_connect($config['username'], $config['password'],$config['database']);

Verwandte Einführung:

Oracle General Oracle ; Oracle, der vollständige Name der Oracle Corporation (Oracle Software Systems Co., Ltd.), ist das weltweit größte Unternehmen für Unternehmenssoftware mit Hauptsitz in Redwood Beach, Kalifornien, USA. Der offizielle Markteintritt in China erfolgte 1989. Im Jahr 2013 überholte Oracle IBM und wurde zum zweitgrößten Softwareunternehmen der Welt nach Microsoft.

Methode 2: Umgebungsvariablen beim Herstellen einer Verbindung festlegen
$conn=oci_new_connect($config['username'], $config['password'],$config['database'],'we8iso8859p1');

Aber bald werden Sie feststellen, dass die durch die obigen Einstellungen gelesenen chinesischen Daten die Codierung nicht festlegen kann normal angezeigt werden, aber sobald es auf der Seite verwendet wird (wenn der Zeichensatz der Seite UTF8 ist), ist es immer noch verstümmelt,

und selbst wenn es von we8iso8859p1 -> konvertiert wird, es wird immer noch verstümmelt sein.

Tatsächlich habe ich nach sorgfältiger Untersuchung festgestellt, dass oci8 die Daten automatisch in das Standardcodierungsformat des Betriebssystems konvertiert, nachdem die Daten mit der Datenbankcodierung WE8ISO8859P1 abgerufen wurden ist GBK, es wird tatsächlich über OCI8 gelesen, die Zeichenkodierung ist GBK, daher sollte die Kodierungskonvertierung von GBK -> erfolgen

Das obige ist der detaillierte Inhalt vonWas tun, wenn PHP Oracle verstümmelt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn