이 섹션은 Linux 및 macOS 사용자, 특히 PHP 애플리케이션에서 두 개 이상의 로캘을 사용하는 사용자에만 적용됩니다.
기본적으로 Microsoft Drivers for PHP for SQL Server는 시스템에 정의된 LC_ALL
환경 변수를 사용하여 천 단위 구분 기호, 소수점 문자, 문자 집합, 월, 일 이름, 오류 메시지와 같은 애플리케이션 메시지, 통화 기호 등에 영향을 미치는 기타 모든 LC_xxx
범주(경우에 따라 $LANG
또는 $LANGUAGE
제외)를 재정의합니다.
버전 5.8.0부터 사용자는 아래 예시와 같이 php.ini 파일을 사용하여 지역화 설정을 구성할 수 있습니다.
SQLSRV 드라이버를 사용하여 로캘 정보 설정
다음을 php.ini 파일의 끝에 추가합니다.
[sqlsrv]
sqlsrv.SetLocaleInfo = <option>
PDO_SQLSRV 드라이버를 사용하여 로캘 정보 설정
다음을 php.ini 파일의 끝에 추가합니다.
[pdo_sqlsrv]
pdo_sqlsrv.set_locale_info = <option>
이 옵션은 다음 값 중 하나 이상일 수 있습니다.
옵션 | 동작 설명 |
---|---|
0 | 드라이버가 시스템 로캘 설정을 무시합니다. |
1 | 드라이버가 LC_CTYPE 변수를 읽습니다. |
2 | 드라이버가 LC_ALL 변수를 읽습니다(기본값). |
LC_CTYPE
범주는 문자 처리 규칙을 결정합니다. 이 규칙은 텍스트 데이터 문자의 바이트 시퀀스, 문자 분류 및 문자 클래스 동작에 대한 해석을 제어합니다. 대문자와 소문자, 알파벳 문자 및 알파벳이 아닌 문자 등의 인식을 제어합니다.
설명
옵션 0 -- 애플리케이션 로캘을 변경하지 않으려면 이 옵션을 사용합니다.
옵션 1 -- 다른
LC_CTYPE
범주에 영향을 주지 않고LC_xxx
의 시스템 값만 설정하려면 이 옵션을 사용합니다.옵션 2 -- 모든
LC_ALL
범주를 재정의하여 PHP 애플리케이션과 그 확장에 영향을 주려면LC_xxx
을 사용합니다.
php 스크립트의 로캘이 시스템 스크립트와 동일하지 않은 경우 php 기본 제공 함수 setlocale을 호출하여 php 스크립트에서 로캘을 지정해야 할 수 있습니다.
예를 들어 시스템 기본값은 en_US.UTF-8
이지만 php 스크립트가 de_DE.UTF-8
을 사용하는 경우, php 함수 setlocale()
을 적절하게 호출합니다.
옵션 2의 경우 LC_ALL
변수와 다른 경우에만 php 스크립트에서 원하는 로캘을 지정합니다.
참고 항목
php.ini에 정의된 내용이 없으면 현재 기본값은 LC_ALL
에 따라 기타 모든 로캘 설정을 재정의하는 것이며, 이 기능은 더 이상 사용되지 않습니다. 조만간 시스템 로캘 설정 무시가 기본값으로 설정될 예정입니다. 따라서 사용자가 현재 동작을 유지하려는 경우에는 php.ini 파일을 적절히 수정해야 합니다.
sqlsrv 및 pdo_sqlsrv 드라이버를 모두 사용하는 경우 두 드라이버에 다른 옵션을 설정하는 것은 권장하지 않습니다.