七牛服务器回调业务服务器时,即QNUploadOption的params参数含有中文的时候,业务服务器接受的是乱码.

如果直接中文传输的话,业务服务器接受的是乱码.

如果UTF8转换后,接收到的字符是就是UTF8格式了.
还需要业务服务器进行转换吗?

-------------------------代码如下-------------------
NSString *params = [self getParams:@"中文字符" order:0];

QNUploadOption *opt=[[QNUploadOption alloc]initWithMime:nil progressHandler:^(NSString *key, float percent) { //NSLog(@"ssss:%f",percent); [pview setProgress:percent];//进度显示 } params:@{@"x:params":params} checkCrc:NO cancellationSignal:nil];

阅读 3.9k
2 个回答

详细描述一下我的操作.

1:Tomcat服务器设置
Connector URIEncoding="UTF-8"

2:URL如下
http://xxx/x.json?params=%7B%0A%20%20%22type%22%20:%200,%0A%20%20%22title%22%20:%20%22%E5%88%9A%E5%A5%BD%E8%A7%A3%E5%86%B3%22,%0A%20%20%22userId%22%20:%201,%0A%20%20%22order%22%20:%200,%0A%20%20%22topics%22%20:%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%22name%22%20:%20%22%22%0A%20%20%20%20%7D%0A%20%20%5D%0A%7D

3:如果直接通过以上的url调用app服务器的话,接受到的是正常的中文.

如果通过设置七牛的回调参数,即 "x:params" = %7B%0A%20%20%22type%22%20:%200,%0A%20%20%22title%22%20:%20%22%E5%88%9A%E5%A5%BD%E8%A7%A3%E5%86%B3%22,%0A%20%20%22userId%22%20:%201,%0A%20%20%22order%22%20:%200,%0A%20%20%22topics%22%20:%20%5B%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%22name%22%20:%20%22%22%0A%20%20%20%20%7D%0A%20%20%5D%0A%7D
app服务器收到的还是上面一串数据,而非正确的中文显示.

请问有什么解决方案嘛?非常感谢了!@高唱大江东去

最好将中文在本地做一下urlencode编码,然后在服务端再解一下这段urlencode编码。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进