| 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 | } |