| | 1616 | |
| | 1617 | /** |
| | 1618 | * Get php's encoding type based on DB_CHARSET |
| | 1619 | * |
| | 1620 | * @return string the sanitized string |
| | 1621 | * |
| | 1622 | * @uses DB_CHARSET set in wp-config.php to know which $encoding to use |
| | 1623 | */ |
| | 1624 | public function get_php_encoding() { |
| | 1625 | static $encoding; |
| | 1626 | if ( !isset( $encoding ) ) { |
| | 1627 | switch ( strtolower( DB_CHARSET ) ) { |
| | 1628 | case 'latin1': |
| | 1629 | $encoding = 'ISO-8859-1'; |
| | 1630 | break; |
| | 1631 | case 'utf8': |
| | 1632 | case 'utf8mb4': |
| | 1633 | $encoding = 'UTF-8'; |
| | 1634 | break; |
| | 1635 | case 'cp866': |
| | 1636 | $encoding = 'cp866'; |
| | 1637 | break; |
| | 1638 | case 'cp1251': |
| | 1639 | $encoding = 'cp1251'; |
| | 1640 | break; |
| | 1641 | case 'koi8r': |
| | 1642 | $encoding = 'KOI8-R'; |
| | 1643 | break; |
| | 1644 | case 'big5': |
| | 1645 | $encoding = 'BIG5'; |
| | 1646 | break; |
| | 1647 | case 'gb2312': |
| | 1648 | $encoding = 'GB2312'; |
| | 1649 | break; |
| | 1650 | case 'sjis': |
| | 1651 | $encoding = 'Shift_JIS'; |
| | 1652 | break; |
| | 1653 | case 'ujis': |
| | 1654 | $encoding = 'EUC-JP'; |
| | 1655 | break; |
| | 1656 | case 'macroman': |
| | 1657 | $encoding = 'MacRoman'; |
| | 1658 | break; |
| | 1659 | default: |
| | 1660 | $encoding = 'UTF-8'; |
| | 1661 | if ( WP_DEBUG ) { |
| | 1662 | trigger_error("Your DB_CHARSET doesn't map to a PHP encoding.", E_USER_WARNING); |
| | 1663 | } |
| | 1664 | } |
| | 1665 | } |
| | 1666 | return $encoding; |
| | 1667 | } |