Heim  >  Artikel  >  Backend-Entwicklung  >  So legen Sie die Codierung fest, wenn Sie PHP mit Oracle verbinden

So legen Sie die Codierung fest, wenn Sie PHP mit Oracle verbinden

藏色散人
藏色散人Original
2021-07-02 10:36:492293Durchsuche

So legen Sie die Kodierung fest, wenn Sie eine Verbindung zu Oracle in PHP herstellen: Rufen Sie zuerst den Zeichensatz von Oracle ab und setzen Sie dann den PHP-Code auf „oci_connect(“scott“, „tiger“, $db, ‚zhs16gbk‘);“.

So legen Sie die Codierung fest, wenn Sie PHP mit Oracle verbinden

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

Wie stelle ich die Codierung ein, wenn ich mit PHP eine Verbindung zu Oracle herstelle?

PHP stellt eine Verbindung zu Oracle her, um den Zeichensatz festzulegen, um verstümmelte Zeichen zu vermeiden.

Die Datenbank verwendet Oracle. 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 von uns benötigten Zeichensatz. Daher lautet der endgültige PHP-Code:

Php-Code

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

Meine lokalen PHP-Dateien verwenden utf-8, daher muss der erhaltene Code wie folgt konvertiert werden:

Php-Code

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

- --- ----------------

UPDATE

-------------- -------------------

Ein Kollege sagte, dass Oracle Daten gemäß dem vom Kunden angegebenen Zeichensatz bereitstellen kann. 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.

Php-Code

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

Darüber hinaus gibt es ein seltsames Problem: Das zuvor in die Codierung konvertierte Symbol ist in der Testmaschinenumgebung normal, kann jedoch bei der Übertragung an den Remote-Standort nicht ordnungsgemäß analysiert werden Ersetzt durch mb_convert_encoding. Der Code lautet wie folgt:

Php-Code

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

Der mögliche Grund ist, ob „//IGNORE“ zum zweiten Parameter in iconv hinzugefügt wurde, 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

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo legen Sie die Codierung fest, wenn Sie PHP mit Oracle verbinden. 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