Heim > Backend-Entwicklung > PHP-Tutorial > Wenn PHP eine Verbindung zu Oracle herstellt, tritt ein verstümmeltes chinesisches Problem auf

Wenn PHP eine Verbindung zu Oracle herstellt, tritt ein verstümmeltes chinesisches Problem auf

巴扎黑
Freigeben: 2016-11-08 11:39:34
Original
1626 Leute haben es durchsucht

Die Datenbank verwendet Oracle, wenn Sie den Zeichensatz angeben, werden chinesische Zeichen verstümmelt angezeigt.

Schauen Sie sich das PHP-Handbuch an. Der vierte Parameter von oci_pconnect ist der Zeichensatz. Legen Sie einfach diesen Parameter fest.

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:

$conn = oci_pconnect('scott','tiger',
"(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=192.168.0.1)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME=jocsbk)))",
'AL32UTF8');
Nach dem Login kopieren

Da lokale PHP-Dateien utf-8 einheitlich verwenden, ist die direkte Ausgabe normal. Es ist keine Transkodierung erforderlich.

Darüber hinaus muss laut relevanten Informationen eine Kodierungskonvertierung durchgeführt werden, wenn sich Ihre lokale Datei von dem Zeichensatz unterscheidet, der für die Verbindung mit Oracle verwendet wird.

while ($dat = oci_fetch_row($cur)) {   
  print_r(iconv('gb2312', 'utf-8', $dat[0]));   
}  
//或者
while ($dat = oci_fetch_row($cur)) {   
  print_r(mb_convert_encoding($dat[0], 'utf-8', 'gbk'));   
}
Nach dem Login kopieren

Es gibt eine andere Lösung, die ich aber noch nicht ausprobiert habe. Oracle kann Daten gemäß dem vom Client angegebenen Zeichensatz bereitstellen. 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


Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage