code: def win32_utf8_argv():
      
  
      try:
          from ctypes import POINTER, byref, cdll, c_int, windll
          from ctypes.wintypes import LPCWSTR, LPWSTR
  
          GetCommandLineW = cdll.kernel32.GetCommandLineW
          GetCommandLineW.argtypes = []
          GetCommandLineW.restype = LPCWSTR
  
          CommandLineToArgvW = windll.shell32.CommandLineToArgvW
          CommandLineToArgvW.argtypes = [LPCWSTR, POINTER(c_int)]
          CommandLineToArgvW.restype = POINTER(LPWSTR)
  
          cmd = GetCommandLineW()
          argc = c_int(0)
          argv = CommandLineToArgvW(cmd, byref(argc))
          if argc.value > 0:
              # Remove Python executable if present
              if argc.value - len(sys.argv) == 1:
                  start = 1
              else:
                  start = 0
              return [argv[i].encode('utf-8') for i in
                      range(start, argc.value)]
      except Exception:
          pass
docs: Uses shell32.GetCommandLineArgvW to get sys.argv as a list of UTF-8
      strings.
  
      Versions 2.5 and older of Python don't support Unicode in sys.argv on
      Windows, with the underlying Windows API instead replacing multi-byte
      characters with '?'.
  
      Returns None on failure.
  
      Example usage:
  
      >>> def main(argv=None):
      ...    if argv is None:
      ...        argv = win32_utf8_argv() or sys.argv
      ...