Heim  >  Artikel  >  Backend-Entwicklung  >  So legen Sie die Oracle-Kodierung in PHP fest

So legen Sie die Oracle-Kodierung in PHP fest

藏色散人
藏色散人Original
2021-10-15 11:01:441463Durchsuche

So legen Sie die Oracle-Kodierung in PHP fest: 1. Rufen Sie den Zeichensatz von Oracle ab. 2. Führen Sie „select * from V$NLS_PARAMETERS;“ aus. 3. Konvertieren Sie die Kodierung über die Funktion iconv.

So legen Sie die Oracle-Kodierung in PHP fest

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

Wie stelle ich die Oracle-Codierung in PHP ein?

php stellt eine Verbindung zu Oracle her, um den zu vermeidenden Zeichensatz festzulegen Verstümmelte Zeichen

Verwenden Sie Oracle für die Datenbank. Wenn PHP eine Verbindung zu Oracle herstellt, ist es am besten, den Zeichensatz anzugeben.

Schauen Sie sich das PHP-Handbuch an. Der vierte Parameter von oci_connect ist der Zeichensatz, dies ist der Schlüssel.

Besorgen Sie sich zunächst den Zeichensatz von Oracle und führen Sie „select * from V$NLS_PARAMETERS;“ aus. Die Variable NLS_CHARACTERSET entspricht dem Zeichensatz, den wir benötigen. Daher lautet der endgültige PHP-Code:

$c1 = oci_connect("scott", "tiger", $db, 'zhs16gbk');

Meine lokalen PHP-Dateien verwenden utf-8, daher muss der erhaltene Code der folgenden Codierungskonvertierung unterzogen werden:

while ($dat = oci_fetch_row($cur)) {
  print_r(iconv('gb2312', 'utf-8', $dat[0]));
}

Update:

Kollegen sagten, dass Oracle vom Client angegeben werden kann Der Zeichensatz liefert Daten. Mit anderen Worten: Wenn meine lokale PHP-Datei UTF-8 verwendet, kann ich bei Verwendung von oci_connect direkt utf-8 angeben und sogar die Codierungskonvertierung wird gespeichert.

$c1 = oci_connect("scott", "tiger", $db, 'UTF8');

Darüber hinaus gibt es ein seltsames Problem: Das durch die vorherige Codierung konvertierte Iconv ist in der Testmaschinenumgebung normal, kann jedoch nicht normal analysiert werden, wenn es an den Remote-Standort übertragen wird. Später wurde es in mb_convert_encoding geändert lautet wie folgt:

$nickname = mb_convert_encoding($dat[0], 'utf-8', 'gbk');

Der mögliche Grund ist, ob „//IGNORE“ zum zweiten Parameter in iconv hinzugefügt wird, siehe http://cn2.php.net/manual/en/function.iconv.php. Wenn Sie interessiert sind, können Sie es versuchen, aber ich werde es nicht versuchen

"

Das obige ist der detaillierte Inhalt vonSo legen Sie die Oracle-Kodierung in PHP fest. 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