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

So legen Sie die Oracle-Kodierung in PHP fest

藏色散人
Freigeben: 2023-03-13 10:26:02
Original
1586 Leute haben es durchsucht

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');
Nach dem Login kopieren

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]));
}
Nach dem Login kopieren

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');
Nach dem Login kopieren

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');
Nach dem Login kopieren

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!

Verwandte Etiketten:
Erklärung dieser Website
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
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage