Solution aux caractères tronqués dans la connexion PHP à Oracle : 1. Obtenez le jeu de caractères d'Oracle en exécutant la commande "select * from V$NLS_PARAMETERS;" 2. Modifiez la variable "NLS_CHARACTERSET" avec le jeu de caractères correspondant ; Changer le PHP local Les fichiers peuvent être uniformément définis sur utf-8.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 8.1, ordinateur Dell G3.
Que dois-je faire si la connexion PHP à Oracle est tronquée ?
PHP se connecte à Oracle pour définir le jeu de caractères afin d'éviter les caractères tronqués
La base de données utilise Oracle Lorsque PHP se connecte à Oracle, il est préférable de spécifier le jeu de caractères.
Vérifiez le manuel PHP, le quatrième paramètre de oci_connect est charset, c'est la clé.
Récupérez d'abord le jeu de caractères d'Oracle et exécutez "select * from V$NLS_PARAMETERS;". La variable NLS_CHARACTERSET correspond au jeu de caractères dont nous avons besoin. Par exemple, ici c'est "ZHS16GBK".
Donc, le code PHP final est :
$c1 = oci_connect("scott", "tiger", $db, 'zhs16gbk');
Mes fichiers PHP locaux utilisent utf-8, le code obtenu doit donc passer par la conversion d'encodage suivante :
while ($dat = oci_fetch_row($cur)) { print_r(iconv('gb2312', 'utf-8', $dat[0])); }
Mise à jour :
Des collègues ont dit qu'Oracle peut, selon le client Fournit des données dans le jeu de caractères spécifié par le client. En d'autres termes, si mon fichier PHP local utilise UTF-8, alors lorsque j'utilise oci_connect, je peux directement spécifier utf-8, et même la conversion d'encodage sera enregistrée.
$c1 = oci_connect("scott", "tiger", $db, 'UTF8');
Code Php
while ($dat = oci_fetch_row($cur)) { print_r($dat[0]); }
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!