包含中文字符的WKWebView上传文件导致代码变为乱码

时间:2017-06-01 09:40:22

标签: ios objective-c macos wkwebview

我正在使用Mac应用程序,只是一个封装在WKWebView中的简单Web应用程序。

以下是我上传名称中包含特殊字符的文件时的代码:

-(void)webView:(WKWebView *)webView runOpenPanelWithParameters:(WKOpenPanelParameters *)parameters initiatedByFrame:(WKFrameInfo *)frame completionHandler:(void (^)(NSArray<NSURL *> * _Nullable))completionHandler
{
     DEBUG_FUNC(@"");

     NSOpenPanel* openDlg = [NSOpenPanel openPanel];
    [openDlg setCanChooseFiles:YES];
    [openDlg setCanChooseDirectories:NO];
    [openDlg setPrompt:NSLocalizedString(@"Choose", nil)];
    openDlg.allowsMultipleSelection = YES;

    if ( [openDlg runModal] == NSOKButton ) 
    {
        if (completionHandler)
        {
            completionHandler([openDlg URLs]);
        }
    }  
}

当我使用WebView时,这种方式可以工作,因此它不应该是Web问题。

但由于该项目使用了WKWebView,所以  例如:通过WKWebView上传后,文件“证书.p12”将更改为“è¯ä¹| .p12”。 谁知道怎么解决呢? 谢谢!

2 个答案:

答案 0 :(得分:0)

我已将此问题发布到https://bugs.webkit.org 所以这是WebKit开发人员确认的WebKit错误, 在https://bugs.webkit.org/show_bug.cgi?id=172849

中查看更多内容

答案 1 :(得分:0)

您的代码中存在一些小缺陷(例如您在取消后不调用处理程序),它也已过时...

return_type function_name( parameter list ) {
   body of the function
}