    # File lib/termtter/system_extensions/windows.rb, line 59
    def print(str)
      str.to_s.gsub("\xef\xbd\x9e", "\xe3\x80\x9c").split(/(\e\[\d*[a-zA-Z])/).each do |token|
        case token
        when /\e\[(\d+)m/
          color = $1.to_i > 90 ? ($1.to_i % 60) : $1.to_i
          $wSetConsoleTextAttribute.call $hStdOut, $colorMap[color].to_i
        when /\e\[\d*[a-zA-Z]/
          # do nothing
        else
          loop do
            begin
              STDOUT.print $iconv_u8_to_sj.iconv(token)
              break
            rescue Iconv::Failure
              STDOUT.print "#{$!.success}?"
              token = $!.failed[1..-1]
            end
          end
        end
      end
      $wSetConsoleTextAttribute.call $hStdOut, $oldColor
      $iconv_u8_to_sj.iconv(nil)
    end