title: Can't upload filename with special character to google drive REST
body: <p>I'm getting error when I try to upload a file to google drive api with my web application and the file has an character with accent, like for example 'ç'.</p>
  
  <p>I'm uploading the file with two requests, an initial request that has the file info and return the uri to where the file should be uploaded, and the subsequent request with the file itself.</p>
  
  <p><strong>The error occurs in the first request</strong> (the one with file information).</p>
  
  <p>The error returned is just an '400 - bad request', and I have no idead how to upload the file with this kind of characteres.</p>
  
  <p>Here is an example of request generated by my application when I try to upload an gif image file.</p>
  
  <pre><code>Content-Type: application/json; charset=UTF-8
  X-Upload-Content-Length: 257
  Authorization: Bearer ******
  X-Upload-Content-Type: image/gif
  Host: www.googleapis.com
  Content-Length: 126
  Expect: 100-continue
  </code></pre>
  
  <p>The request body contains only an json object with file data, heres the code example where this initial request is configured:</p>
  
  <pre><code>private WebRequest CreateInitialUploadRequest(String parentId, String title, String mimeType)
  {
      String uri = "https://www.googleapis.com/upload/drive/v2/files?uploadType=resumable&amp;access_token=" + AUTH_KEY;
  
      System.Net.WebRequest request = this.WebRequestFactory.CreateWebRequest(uri);
  
      request.Method = "POST";
      request.ContentType = "application/json; charset=UTF-8";            
      request.Headers.Add("X-Upload-Content-Length", length.ToString());
      request.Headers.Add("Authorization", string.Format("Bearer {0}", AUTH_KEY));
      request.Headers.Add("X-Upload-Content-Type", mimeType);
  
      //Setup parent id folder for file
      object[] parents = {new {id = parentId}};        
  
      object jsonObject = new
      {
          title = title,
          mimeType = mimeType,
          description = "foo bar",
          parents = parents
      };
  
      String strData = new JavaScriptSerializer().Serialize(jsonObject);
  
      byte[] data = Encoding.UTF8.GetBytes(strData);
  
      request.ContentLength = data.Length;
  
      var stream = request.GetRequestStream();
      stream.Write(data, 0, data.Length);
      stream.Close();
  
      return request;
  }
  </code></pre>
  
  <p>When I try to call the method like this:</p>
  
  <pre><code>WebRequest initialRequest = CreateInitialUploadRequest("valid-parent-folder", "invalid file ç", "image/gif");
  
  //I get an 'bad request' http error code 400 in the following line:
  initialRequest.GetResponse();
  </code></pre>
  
  <p>Should I encode the request somehow?</p>