>  기사  >  백엔드 개발  >  PHP를 Oracle에 연결할 때 인코딩을 설정하는 방법

PHP를 Oracle에 연결할 때 인코딩을 설정하는 방법

藏色散人
藏色散人원래의
2021-07-02 10:36:492293검색

PHP에서 Oracle에 연결할 때 인코딩을 설정하는 방법: 먼저 Oracle의 문자 집합을 가져온 다음 PHP 코드를 "oci_connect("scott", "tiger", $db, 'zhs16gbk');"로 설정합니다.

PHP를 Oracle에 연결할 때 인코딩을 설정하는 방법

이 기사의 운영 환경: windows7 시스템, PHP7.1 버전, DELL G3 컴퓨터

PHP로 Oracle에 연결할 때 인코딩을 설정하는 방법은 무엇입니까?

PHP는 문자 깨짐을 방지하기 위해 문자 세트를 설정하기 위해 oracle에 연결합니다.

데이터베이스는 oracle을 사용합니다. PHP가 oracle에 연결할 때 문자 세트를 지정하는 것이 가장 좋습니다.

PHP 매뉴얼을 확인하세요. oci_connect의 네 번째 매개변수는 charset입니다. 이것이 핵심입니다.

먼저 oracle의 문자 집합을 가져오고 "select * from V$NLS_PARAMETERS;"를 실행합니다. NLS_CHARACTERSET 변수는 필요한 문자 집합에 해당합니다. 예를 들어 여기서는 "ZHS16GBK"입니다. 따라서 최종 PHP 코드는 다음과 같습니다.

Php code

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

내 로컬 PHP 파일은 utf-8을 사용하므로 얻은 코드는 다음과 같이 변환해야 합니다.

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]));
}

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

업데이트

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

한 동료는 Oracle이 클라이언트가 지정한 문자 집합에 따라 데이터를 제공할 수 있다고 말했습니다. 즉, 내 로컬 PHP 파일이 UTF-8을 사용하는 경우 oci_connect를 사용할 때 UTF-8을 직접 지정할 수 있으며 인코딩 변환도 저장됩니다.

Php 코드

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

게다가 이상한 문제가 있습니다. 이전에 인코딩으로 변환된 iconv가 테스트 머신 환경에서는 정상인데 나중에 원격 위치로 전송하면 제대로 구문 분석할 수 없습니다. mb_convert_encoding으로 대체됩니다.

Php 코드

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

가능한 이유는 iconv의 두 번째 매개변수에 "//IGNORE"가 추가되었는지 여부입니다. http://cn2.php.net을 참조하세요. /manual/ko/function.iconv.php. 관심이 있으시면 시도해 볼 수 있지만 시도하지는 않겠습니다

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP를 Oracle에 연결할 때 인코딩을 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.