Heim >Backend-Entwicklung >PHP-Problem >So legen Sie die Oracle-Kodierung in PHP fest
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.
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!