#2515 - Drop non-utf8 (non-unicode) support
| Identifier | #2515 |
|---|---|
| Issue type | Feature request or suggestion |
| Title | Drop non-utf8 (non-unicode) support |
| Status | Closed (rejected) |
| Tags |
Risk: Deprecates functionality (custom) Type: Performance (custom) |
| Handling member | Chris Graham |
| Addon | core |
| Description | ocPortal v9 was ISO-8859-1 by default, as was HTML4. PHP has no core unicode support and we were waiting for PHP6's unicode support, but that was cancelled.
So we went with utf-8 anyway with v10, and at this point our mbstring/iconv unicode support is stable enough to not think about ever going back. mbstring/iconv has been added to the checks run during the installer and during phpinfo. HTML5 is utf-8 by default, and pretty much everyone has adopted it as "the standard". I can't think of any reason for this to even be configurable anymore. It has a cognitive load, and a performance impact checking the character set and holding non-utf code paths around, so why not just drop non-utf8 entirely? At some point something becomes appropriate as a universal standard and we can just shake off the historic legacy of it all. If we don't do this, we can at least replace the get_charset() function with a constant and remove the charset language string, making the charset just a _config.php setting that gets copied through to a constant. That would improve performance. |
| Steps to reproduce | |
| Funded? | No |
The system will post a comment when this issue is modified (e.g., status changes). To be notified of this, click "Enable comment notifications".


Comments
<meta http-equiv="Content-Type" content="text/html; charset={$CHARSET*}" />
$shortcuts = array('(EUR-)' => '€', '{f.}' => 'ƒ', '-|-' => '†', '=|=' => '‡', '{%o}' => '‰', '{~S}' => 'Š', '{~Z}' => 'Ž', '(TM)' => '™', '{~s}' => 'š', '{~z}' => 'ž', '{.Y.}' => 'Ÿ', '(c)' => '©', '(r)' => '®', '---' => '—', '-->' => '→', '<--' => '←', '--' => '–', '...' => '…');
Some people may be integrating with legacy systems where iso-8859-1 is baked really deep into the content being managed.
Maybe it can be dropped in 20 years ;-).