欢迎光临,了解微信小程序开发,就上易用通!

小程序wx.uploadFile出现中文无法上传或者出现乱码

发布:2018-04-16 10:55浏览: 来源:网络 作者:cola

各位同学小程序中碰到上传图片或者文件时有用到formData的 
formData Object 否 HTTP 请求中其他额外的 form data 
出现中文无法上传或者出现乱码时可以参考一下这篇跳坑指南微信小程序联盟-uploadFile跳坑指南 
里面讲的很详细了,这里归纳一下,解决方法: 
在formData中对文字进行编码,使用encodeURI() 
wxml中例:

 

				
  1. formData: {
  2. name:encodeURI(name),
  3. address:encodeURI(address),
  4. }, // HTTP 请求中其他额外的 form data

上网搜了很多:  UrlEncode编码/UrlDecode解码使用方法  UrlEncode编码主要用于将字符串以URL编码,返回一个字符串;  使用方法:  1、ASP中的用法:Server.URLEncode(“内容”) 例如:

 

				
  1. <%response.writeServer.UrlEncode("赖雪平网络营销博客")%>

2、PHP中的用法:urlencode(“内容”) 例如:

 

				
  1. <?echourlencode("赖雪平网络营销博客")?>

3、JSP中的用法:URLEncoder.encode(“内容”) 例如:

 

				
  1. <%java.net.URLEncoder.encode("赖雪平网络营销博客"); %>

UrlDecode解码主要对字符串进行URL解码,返回已解码的字符串;  1、ASP中的用法:Server.UrlDecode(“内容”) 例如:

 

				
  1. <%response.writeServer.UrlDecode("%C0%B5%D1%A9%C6%BD%CD%F8%C2%E7%D3%AA%CF%FA%B2%A9%BF%CD")%>

2、PHP中的用法:urldecode(“内容”) 例如:

 

				
  1. <?echourldecode("%C0%B5%D1%A9%C6%BD%CD%F8%C2%E7%D3%AA%CF%FA%B2%A9%BF%CD")?>

3、JSP中的用法:URLDecoder.decode(“内容”) 例如:

 

				
  1. <%java.net.URLDecoder.decode("%C0%B5%D1%A9%C6%BD%CD%F8%C2%E7%D3%AA%CF%FA%B2%A9%BF%CD"); %>

发现没有nodejs后台的,还好皇天不负有心人,找到有用js写的decodeurl函数,给大家分享一下,有用的同学可以看一下。  js代码:

 

				
  1. function urldecode (str) {
  2. var hash_map = {}, ret = str.toString(), unicodeStr='', hexEscStr='';
  3. var replacer = function (search, replace, str) {
  4. var tmp_arr = [];
  5. tmp_arr = str.split(search);
  6. return tmp_arr.join(replace);
  7. };
  8. // The hash_map is identical to the one in urlencode.
  9. hash_map["'"] = ''';
  10. hash_map['('] = '(';
  11. hash_map[')'] = ')';
  12. hash_map['*'] = '*';
  13. hash_map['~'] = '~';
  14. hash_map['!'] = '!';
  15. hash_map[' '] = ' ';
  16. hash_map['\u00DC'] = '�';
  17. hash_map['\u00FC'] = '�';
  18. hash_map['\u00C4'] = '�';
  19. hash_map['\u00E4'] = '�';
  20. hash_map['\u00D6'] = '�';
  21. hash_map['\u00F6'] = '�';
  22. hash_map['\u00DF'] = '�';
  23. hash_map['\u20AC'] = '�';
  24. hash_map['\u0081'] = '�';
  25. hash_map['\u201A'] = '�';
  26. hash_map['\u0192'] = '�';
  27. hash_map['\u201E'] = '�';
  28. hash_map['\u2026'] = '�';
  29. hash_map['\u2020'] = '�';
  30. hash_map['\u2021'] = '�';
  31. hash_map['\u02C6'] = '�';
  32. hash_map['\u2030'] = '�';
  33. hash_map['\u0160'] = '�';
  34. hash_map['\u2039'] = '�';
  35. hash_map['\u0152'] = '�';
  36. hash_map['\u008D'] = '�';
  37. hash_map['\u017D'] = '�';
  38. hash_map['\u008F'] = '�';
  39. hash_map['\u0090'] = '�';
  40. hash_map['\u2018'] = '�';
  41. hash_map['\u2019'] = '�';
  42. hash_map['\u201C'] = '�';
  43. hash_map['\u201D'] = '�';
  44. hash_map['\u2022'] = '�';
  45. hash_map['\u2013'] = '�';
  46. hash_map['\u2014'] = '�';
  47. hash_map['\u02DC'] = '�';
  48. hash_map['\u2122'] = '�';
  49. hash_map['\u0161'] = '�';
  50. hash_map['\u203A'] = '�';
  51. hash_map['\u0153'] = '�';
  52. hash_map['\u009D'] = '�';
  53. hash_map['\u017E'] = '�';
  54. hash_map['\u0178'] = '�';
  55. hash_map['\u00C6'] = 'Æ';
  56. hash_map['\u00D8'] = 'Ø';
  57. hash_map['\u00C5'] = 'Å';
  58. for (unicodeStr in hash_map) {
  59. hexEscStr = hash_map[unicodeStr]; // Switch order when decoding
  60. ret = replacer(hexEscStr, unicodeStr, ret); // Custom replace. No regexing
  61. }
  62. // End with d
  63. ecodeURIComponent, which most resembles PHP's encoding functions
  64. ret = decodeURIComponent(ret);
  65. return ret;
  66. }

至于怎么用,相信看得懂js的一看就知道了,直接调用函数就行了。  唉!小程序坑真心多啊!刚爬出来一个又掉入一个。  但是呢,从哪里掉进去就要再从哪里爬出来






免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。