上传带有特殊unicode字符的文件时出现Google Drive分析错误

本文关键字:Google Drive 错误 文件 字符 unicode | 更新日期: 2023-09-27 18:20:43

最近尝试使用Google API dotnet客户端sdk上载文件时出现问题。当文件名包含任何特殊的Unicode字符时,它会抛出一个错误。

这是我的代码

    public static Google.Apis.Drive.v2.Data.File InsertResource(Google.Apis.Drive.v2.DriveService service, string filePath, string parentId, string fileName, string mimeType)
    {
        Google.Apis.Drive.v2.Data.File body = new Google.Apis.Drive.v2.Data.File();
        try
        {
            // File's metadata.
            body.Title = fileName;
            body.MimeType = mimeType;
            // Set the parent folder.
            if (!String.IsNullOrEmpty(parentId))
            {
                var response = DriveUtils.GetFileInfo(service, parentId);
                if (response.Error != null)
                {
                    body.Error = response.Error;
                    return body;
                }
                body.Parents = new List<ParentReference>() { new ParentReference() { Id = parentId } };
            }
            byte[] byteArray = System.IO.File.ReadAllBytes(filePath);
            MemoryStream stream = new MemoryStream(byteArray);
            Google.Apis.Drive.v2.FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, mimeType);
            request.Upload();
            return request.ResponseBody;
        }
        catch (GoogleApiRequestException e)
        {
            body.Error = e.RequestError;
            return body;
        }
}

直到本周,一切都很顺利。任何名称中包含中文字符或土耳其字符的文件都会引发错误。

在Google.Apis.Json.JsonReader.ParseExpression(JsonToken令牌,TokenStream ts)在Google.Apis.Json.JsonReader.Parse(字符串jsonAsText)在Google.Apis.Upload.RemobleUpload`1.Upload()

上传带有特殊unicode字符的文件时出现Google Drive分析错误

尝试下载API的最新版本(从https://code.google.com/p/google-api-dotnet-client/wiki/APIs#Drive_API)。我将Drive示例中的第122行(此处有下载此示例的说明)更改为Title="字/漢字"和Title="Title withç",他们都为我工作。