original_string: public static function parse_charset($charset) {
          $charset = strtolower($charset);
  
          // shortcuts so that we do not have to load typo3 on every page
  
          if ($charset === 'utf8' or $charset === 'utf-8') {
              return 'utf-8';
          }
  
          if (preg_match('/^(cp|win|windows)-?(12[0-9]{2})$/', $charset, $matches)) {
              return 'windows-'.$matches[2];
          }
  
          if (preg_match('/^iso-8859-[0-9]+$/', $charset, $matches)) {
              return $charset;
          }
  
          if ($charset === 'euc-jp') {
              return 'euc-jp';
          }
          if ($charset === 'iso-2022-jp') {
              return 'iso-2022-jp';
          }
          if ($charset === 'shift-jis' or $charset === 'shift_jis') {
              return 'shift_jis';
          }
          if ($charset === 'gb2312') {
              return 'gb2312';
          }
          if ($charset === 'gb18030') {
              return 'gb18030';
          }
  
          // fallback to typo3
          return self::typo3()->parse_charset($charset);
      }
code: public static function parse_charset($charset) {
          $charset = strtolower($charset);
  
          // shortcuts so that we do not have to load typo3 on every page
  
          if ($charset === 'utf8' or $charset === 'utf-8') {
              return 'utf-8';
          }
  
          if (preg_match('/^(cp|win|windows)-?(12[0-9]{2})$/', $charset, $matches)) {
              return 'windows-'.$matches[2];
          }
  
          if (preg_match('/^iso-8859-[0-9]+$/', $charset, $matches)) {
              return $charset;
          }
  
          if ($charset === 'euc-jp') {
              return 'euc-jp';
          }
          if ($charset === 'iso-2022-jp') {
              return 'iso-2022-jp';
          }
          if ($charset === 'shift-jis' or $charset === 'shift_jis') {
              return 'shift_jis';
          }
          if ($charset === 'gb2312') {
              return 'gb2312';
          }
          if ($charset === 'gb18030') {
              return 'gb18030';
          }
  
          // fallback to typo3
          return self::typo3()->parse_charset($charset);
      }
code_tokens: public static function parse_charset ( $ charset ) { $ charset = strtolower ( $ charset ) ; // shortcuts so that we do not have to load typo3 on every page if ( $ charset === 'utf8' or $ charset === 'utf-8' ) { return 'utf-8' ; } if ( preg_match ( '/^(cp|win|windows)-?(12[0-9]{2})$/' , $ charset , $ matches ) ) { return 'windows-' . $ matches [ 2 ] ; } if ( preg_match ( '/^iso-8859-[0-9]+$/' , $ charset , $ matches ) ) { return $ charset ; } if ( $ charset === 'euc-jp' ) { return 'euc-jp' ; } if ( $ charset === 'iso-2022-jp' ) { return 'iso-2022-jp' ; } if ( $ charset === 'shift-jis' or $ charset === 'shift_jis' ) { return 'shift_jis' ; } if ( $ charset === 'gb2312' ) { return 'gb2312' ; } if ( $ charset === 'gb18030' ) { return 'gb18030' ; } // fallback to typo3 return self :: typo3 ( ) -> parse_charset ( $ charset ) ; }
docstring: Standardise charset name
  
  Please note it does not mean the returned charset is actually supported.
  
  @static
  @param string $charset raw charset name
  @return string normalised lowercase charset name
docstring_tokens: Standardise charset name