Freigeben über


Nicht vom System festgelegte Gebietsschemaeinstellungen

PHP-Treiber herunterladen

Dieser Abschnitt gilt nur für Linux- und macOS-Benutzer, insbesondere für diejenigen, die in ihren php-Anwendungen mit mehreren Gebietsschemas arbeiten.

Standardmäßig verwendet Microsoft-Treiber für PHP für SQL Server die im System definierte Umgebungsvariable LC_ALL und überschreibt alle anderen LC_xxx-Kategorien (außer vielleicht $LANG oder $LANGUAGE unter bestimmten Umständen), was sich auf das Tausender-Trennzeichen, das Dezimalzeichen, den Zeichensatz, die Monats- und Tagesnamen, Anwendungsmeldungen wie Fehlermeldungen, das Währungssymbol usw. auswirkt.

Ab Version 5.8.0 können Benutzer die Lokalisierungseinstellungen mithilfe der Datei „php.ini“ konfigurieren, wie in den folgenden Beispielen gezeigt.

Festlegen von Gebietsschemainformationen mithilfe des Treibers SQLSRV

Fügen Sie am Ende der Datei „php.ini“ Folgendes ein:

[sqlsrv]  
sqlsrv.SetLocaleInfo = <option>

Festlegen des Gebietsschemas mithilfe des Treibers PDO_SQLSRV

Fügen Sie am Ende der Datei „php.ini“ Folgendes ein:

[pdo_sqlsrv]  
pdo_sqlsrv.set_locale_info = <option>

Für option ist einer der folgenden Werte möglich:

Option Beschreibung des Verhaltens
0 Der Treiber ignoriert die Gebietsschemaeinstellungen des Systems.
1 Der Treiber liest die Variable LC_CTYPE.
2 Der Treiber liest die Variable LC_ALL (Standardeinstellung).

Die Kategorie LC_CTYPE legt Regeln für die Zeichenbehandlung fest, die die Interpretation der Sequenzen von Bytes von Textdatenzeichen, die Klassifizierung von Zeichen und das Verhalten von Zeichenklassen regeln. Sie steuert das Erkennen von Groß- und Kleinbuchstaben, alphabetischen und nicht alphabetischen Zeichen usw.

Erklärung

  1. Option 0: Verwenden Sie diese Option, wenn Sie das Gebietsschema der Anwendung nicht ändern möchten.

  2. Option 1: Verwenden Sie diese Option, um nur den Systemwert von LC_CTYPE festzulegen, ohne die anderen LC_xxx-Kategorien zu beeinflussen.

  3. Option 2: Verwenden Sie LC_ALL, um alle LC_xxx-Kategorien zu überschreiben, was sich auf die php-Anwendung und ihre Erweiterungen auswirkt.

Wenn das Gebietsschema für ein php-Skript nicht mit dem des Systems übereinstimmt, müssen Sie möglicherweise das Gebietsschema in den php-Skripts angeben, indem Sie die in php integrierte Funktion setlocale aufrufen.

Wenn die Standardeinstellung des Systems z. B. en_US.UTF-8 ist, das php-Skript aber de_DE.UTF-8 verwendet, rufen Sie die php-Funktion setlocale() entsprechend auf.

Geben Sie für die Option 2 nur dann das gewünschte Gebietsschema in Ihren php-Skripts an, wenn es sich von der Variablen LC_ALL unterscheidet.

Hinweis

Wenn in „php.ini“ nichts definiert ist, ist die aktuelle Standardeinstellung, alle anderen auf LC_ALL basierenden Gebietsschemaeinstellungen zu überschreiben, was als veraltet gilt. In naher Zukunft werden die Systemeinstellungen des Gebietsschemas standardmäßig ignoriert. Daher müssen Benutzer die Datei „php. ini“ entsprechend ändern, wenn Sie das aktuelle Verhalten beibehalten möchten.

Wenn die beiden Treiber SQLSRV und PDO_SQLSRV aktiviert sind, wird nicht empfohlen, unterschiedliche Optionen für die beiden Treiber festzulegen.