public static function trad2simp($str) {
    if (empty($str)) {
      throw new Exception('Argument str cannot be empty');
    }
    $ords = self::utf8ToUnicode($str);
    foreach ($ords as $k => $val) {
      if ($val !== false && array_key_exists($val, self::$trad2simple)) {
        $ords[$k] = self::$trad2simple[$val];
      }
      else {
        $ords[$k] = $val;
      }
    }
    return self::unicodeToUtf8($ords);
  }