diff options
author | Andrey Andreev <narf@devilix.net> | 2014-02-12 18:25:01 +0100 |
---|---|---|
committer | Andrey Andreev <narf@devilix.net> | 2014-02-12 18:25:01 +0100 |
commit | eb555ed7a1673dab9f51df0d1365d19c4429a900 (patch) | |
tree | ae46cd92af686b5f356c9515989c28aa8e8f59b7 /system/core/Utf8.php | |
parent | bfbdf1eb200c89783b98a6d6b23de3483fbc8975 (diff) |
Move mbstring/iconv configuration and MB_ENABLED, ICONV_ENABLED out of CI_Utf8::__construct()
Also, use mb_substitute_character() instead of ini_set()
Diffstat (limited to 'system/core/Utf8.php')
-rw-r--r-- | system/core/Utf8.php | 36 |
1 files changed, 3 insertions, 33 deletions
diff --git a/system/core/Utf8.php b/system/core/Utf8.php index b58c611e1..6ca1a02ca 100644 --- a/system/core/Utf8.php +++ b/system/core/Utf8.php @@ -48,42 +48,10 @@ class CI_Utf8 { */ public function __construct() { - log_message('debug', 'Utf8 Class Initialized'); - - $charset = strtoupper(config_item('charset')); - - // set internal encoding for multibyte string functions if necessary - // and set a flag so we don't have to repeatedly use extension_loaded() - // or function_exists() - if (extension_loaded('mbstring')) - { - define('MB_ENABLED', TRUE); - mb_internal_encoding($charset); - // This is required for mb_convert_encoding() to strip invalid characters - ini_set('mbstring.substitute_character', 'none'); - } - else - { - define('MB_ENABLED', FALSE); - } - - // Do the same for iconv, which actually has more easy to remember - // predefined constants (such as ICONV_IMPL), but the iconv PHP - // manual page says that using them is "strongly discouraged". - if (extension_loaded('iconv')) - { - define('ICONV_ENABLED', TRUE); - iconv_set_encoding('internal_encoding', $charset); - } - else - { - define('ICONV_ENABLED', FALSE); - } - if ( defined('PREG_BAD_UTF8_ERROR') // PCRE must support UTF-8 && (ICONV_ENABLED === TRUE OR MB_ENABLED === TRUE) // iconv or mbstring must be installed - && $charset === 'UTF-8' // Application charset must be UTF-8 + && strnatcasecmp(config_item('charset'), 'UTF-8') === 0 // Application charset must be UTF-8 ) { define('UTF8_ENABLED', TRUE); @@ -94,6 +62,8 @@ class CI_Utf8 { define('UTF8_ENABLED', FALSE); log_message('debug', 'UTF-8 Support Disabled'); } + + log_message('debug', 'Utf8 Class Initialized'); } // -------------------------------------------------------------------- |