diff options
author | Frank M. Kromann <fmk@php.net> | 2005-12-21 22:44:04 +0000 |
---|---|---|
committer | Frank M. Kromann <fmk@php.net> | 2005-12-21 22:44:04 +0000 |
commit | 8560728ae081ae8bbb11ca86931d04d7af14e45d (patch) | |
tree | d6329a22599f1e0fd5d594e022c12149387f77d6 | |
parent | 42a83a6fc97d3a1017f2230471c017b2ab0b5715 (diff) | |
download | php-git-8560728ae081ae8bbb11ca86931d04d7af14e45d.tar.gz |
Fix #35730 Use correct character encoding with FreeTDS
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | ext/mssql/php_mssql.c | 7 | ||||
-rw-r--r-- | ext/mssql/php_mssql.h | 3 | ||||
-rw-r--r-- | php.ini-dist | 5 | ||||
-rw-r--r-- | php.ini-recommended | 5 |
5 files changed, 20 insertions, 1 deletions
@@ -26,4 +26,5 @@ PHP NEWS the part of haystack before or after first occurence of needle. (Johannes) - Added possibility to check in which extension an internal function was defined using reflection API. (Johannes) +- Fixed bug #35730 (Use correct character encoding, and allow setting it) (Frank) - Fixed bug #34286 (__toString() behavior is inconsistent). (Marcus) diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c index e9a7f064ec..554d834b9a 100644 --- a/ext/mssql/php_mssql.c +++ b/ext/mssql/php_mssql.c @@ -141,6 +141,9 @@ PHP_INI_BEGIN() STD_PHP_INI_BOOLEAN("mssql.datetimeconvert", "1", PHP_INI_ALL, OnUpdateBool, datetimeconvert, zend_mssql_globals, mssql_globals) STD_PHP_INI_BOOLEAN("mssql.secure_connection", "0", PHP_INI_SYSTEM, OnUpdateBool, secure_connection, zend_mssql_globals, mssql_globals) STD_PHP_INI_ENTRY_EX("mssql.max_procs", "-1", PHP_INI_ALL, OnUpdateLong, max_procs, zend_mssql_globals, mssql_globals, display_link_numbers) +#ifdef HAVE_FREETDS + STD_PHP_INI_ENTRY("mssql.charset", "", PHP_INI_ALL, OnUpdateString, charset, zend_mssql_globals, mssql_globals) +#endif PHP_INI_END() /* error handler */ @@ -495,7 +498,9 @@ static void php_mssql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent) #endif #ifdef HAVE_FREETDS - DBSETLCHARSET(mssql.login, "ISO-8859-1"); + if (MS_SQL_G(charset) && strlen(MS_SQL_G(charset))) { + DBSETLCHARSET(mssql.login, MS_SQL_G(charset)); + } #endif DBSETLAPP(mssql.login,MS_SQL_G(appname)); diff --git a/ext/mssql/php_mssql.h b/ext/mssql/php_mssql.h index 17e5d4d10e..9c668ef368 100644 --- a/ext/mssql/php_mssql.h +++ b/ext/mssql/php_mssql.h @@ -158,6 +158,9 @@ ZEND_BEGIN_MODULE_GLOBALS(mssql) zend_bool allow_persistent; char *appname; char *server_message; +#ifdef HAVE_FREETDS + char *charset; +#endif long min_error_severity, min_message_severity; long cfg_min_error_severity, cfg_min_message_severity; long connect_timeout, timeout; diff --git a/php.ini-dist b/php.ini-dist index eefaf9f22b..426d4c30a1 100644 --- a/php.ini-dist +++ b/php.ini-dist @@ -1046,6 +1046,11 @@ mssql.secure_connection = Off ; FreeTDS defaults to 4096 ;mssql.max_procs = -1 +; Specify client character set. +; If empty or not set the client charset from freetds.comf is used +; This is only used when compiled with FreeTDS +;mssql.charset = "ISO-8859-1" + [Assertion] ; Assert(expr); active by default. ;assert.active = On diff --git a/php.ini-recommended b/php.ini-recommended index cb4d0c1938..1bc4bc3478 100644 --- a/php.ini-recommended +++ b/php.ini-recommended @@ -1103,6 +1103,11 @@ mssql.secure_connection = Off ; FreeTDS defaults to 4096 ;mssql.max_procs = -1 +; Specify client character set. +; If empty or not set the client charset from freetds.comf is used +; This is only used when compiled with FreeTDS +;mssql.charset = "ISO-8859-1" + [Assertion] ; Assert(expr); active by default. ;assert.active = On |