title: ffmpeg avformat_open_input() failed to open a dshow device url containing Chinese Characters
body: <p>The USB Webcam is OK, but the device I want to use is a "virtual camera" named "无他伴侣(竖屏)", whose video is from the smart phone like Android or iOS. Connect the phone to PC, run an app on the phone, then run a PC client application, which can preview the video. The phone app is called "无他相机", and the PC app is called "无他伴侣", its website is <a href="https://www.wuta-cam.com/" rel="nofollow noreferrer">https://www.wuta-cam.com/</a>.</p>
  
  <p>I run FFmpeg at the Windows Commandline with the command <code>ffmpeg -list_devices true -f dshow -i dummy</code>, it's OK to list the devices.(in order to display Chinese correctly, run <code>chcp 65001</code> in advance.)</p>
  
  <p>Run the command <code>ffplay -f dshow -i video="无他伴侣(竖屏)"</code>, it's OK to play the video.(of course you need to comfirm its PC client previewing fine in advance.)</p>
  
  <p>Now I want to get the decoded frames from that virtual camera in my program, I call <code>avformat_open_input()</code> with <code>video=无他伴侣(竖屏)</code>, it failed, the return value is -5, I/O error.</p>
  
  <p>Anyone knows the reason? Please help. Thanks in advance.</p>
  
  <p>Below is my code snippet.</p>
  
  <pre><code>avdevice_register_all();
  avcodec_register_all();
  //const char * url= "video=Logitech Webcam C930e";// This is fine.
  char url[] = "video=无他伴侣(竖屏)";// This is bad.
  
  AVFormatContext *pFmtCtx = avformat_alloc_context();
  AVInputFormat *iformat = av_find_input_format("dshow");
  int nRet = 0;
  nRet = avformat_open_input(&amp;pFmtCtx, url, iformat, NULL);
  if (nRet)
  {
      const size_t buffer_size = 256;
      char err_description[buffer_size];
      av_strerror(nRet, err_description, buffer_size);
      printf("%s.\n", err_description);// --&gt; I/O error.
      printf("FAILED to open input.(Line:%d,%d)\n",  __LINE__, nRet);
      return -1;
  }
  </code></pre>