源字符串:
a a 1 ~`!@#$%^&()_+-={}[];',.- +
编码后:
a%20a%201%20~%60%21@%23$%25%5E&%28%29_+-=%7B%7D%5B%5D;%27,.-%20+

源字符串:
变 ~!@#¥%…………&()——+=-·{}:“;‘、《》?,。、-+A a 1
编码后:
变%20~%EF%BC%81@%23%EF%BF%A5%25%E2%80%A6%E2%80%A6%E2%80%A6%E2%80%A6&%EF%BC%88%EF%BC%89%E2%80%94%E2%80%94+=-%C2%B7%7B%7D%EF%BC%9A%E2%80%9C%EF%BC%9B%E2%80%98%E3%80%81%E3%80%8A%E3%80%8B%EF%BC%9F%EF%BC%8C%E3%80%82%E3%80%81-+A%20a%201

 /*** 针对七牛含有特殊字符的文件名,对特殊字符编码处理* @param str* @return*/public static String encoderNew(String str){if(org.apache.commons.lang3.StringUtils.isEmpty(str)){return str;}StringBuilder res = new StringBuilder();//需要编码的字符List<String> list = Arrays.asList(new String[]{" ", "`", "!", "#", "%", "^", "(", ")", "{", "[", "]", "}", "'", "*", "!", "¥", "…", "(", ")", "—", "·", ":", "“", ";", "‘", "、", "《", "》", "?", ",", "。", "、"});char[] cs = str.toCharArray();try{for(int i = 0; i < cs.length; i ++){String temp = String.valueOf(cs[i]);if(list.contains(temp)){if(isDbcCase(cs[i])){//包含特殊字符 - 半角res.append("%");res.append(Integer.toHexString((int)cs[i]).toUpperCase());}else {//包含特殊字符 - 全角res.append(URLEncoder.encode(temp, "UTF-8").toUpperCase());}}else {//不包含特殊字符
                    res.append(temp);}}}catch (Exception e){logger.error("encoderNew error msg=", e);}return res.toString();}/*** 半角、全角字符判断** @param c*            字符* @return true:半角; false:全角*/public static boolean isDbcCase(char c) {// 基本拉丁字母(即键盘上可见的,空格、数字、字母、符号)if (c >= 32 && c <= 127) {return true;}// 日文半角片假名和符号else if (c >= 65377 && c <= 65439) {return true;}return false;}

转载于:https://www.cnblogs.com/wanhua-wu/p/9474763.html

针对七牛含有特殊字符的文件名,对特殊字符编码处理相关推荐

  1. laravel上传到七牛图片插件

    1.首先引入两个插件 2.在https://developer.qiniu.com/kodo/sdk/1241/php找到安装命令 在终端运行composer require qiniu/php-sd ...

  2. php七牛分片上传_ThinkPHP实现JavaScript上传大视频到七牛云实例

    1.通过Composer安装七牛云PHP SDK,官方文档 2.后端核心代码如下: use Qiniu\Auth as Auth; use Qiniu\Config; use Qiniu\Storag ...

  3. elementui 上传七牛_element ui使用上传组件上传文件到七牛(qiniu-js)

    博主正在重构博客中,刚开始时静态资源都是上传到本地服务器的,但这个项目博主最后打算真正上线运营的.索性就改进了下,把静态资源尽量放到云存储中,方便后续开发.这里把方法和遇到坑给记录下. 1.使用前提注 ...

  4. 七牛上传图片初探 开始上传 暂停上传 继续上传

    效果 代码 public class MainActivity extends AppCompatActivity {ListView listview;AlbumList albumList;@Ov ...

  5. android七牛多张图片上传

    将多张图片上传到七牛,需要一张张上传 七牛android SDK使用指南http://developer.qiniu.com/code/v7/sdk/android.html 将图片上传到七牛服务器的 ...

  6. Windows平台七牛批量上传工具使用教程

    因为原有的图形工具被废弃了,所重新找了个 命令行工具(qshell) 1. 先去官网 https://developer.qiniu.com/kodo/tools/1302/qshell 下载该执行文 ...

  7. Android使用七牛上传图片踩坑及解决方案

    Android开发上传图片到七牛的步骤 1. 集成七牛SDK compile 'com.qiniu:qiniu-android-sdk:7.3.+' 2. 获得上传凭证token用于上传图片到七牛 这 ...

  8. 使用Python实现一个七牛GUI小程序客户端

    经常使用有道云笔记的MarkDown功能来写文章或者记录日志难免会向文章中插入图片,可是有道云笔记的这功能是收费的,因此用python开发一个GUI小工具可以可以帮我把图片上传到七牛cdn,然后我就可 ...

  9. tp框架文件上传七牛服务器,TP5开发 - 七牛云图片上传方法

    1.config.php配置文件里配置七牛云密钥等 里面 secretKey accessKey domain bucket对应换成自己七牛云申请的, 步骤: (1)七牛云注册成功后-对象存储申请10 ...

最新文章

  1. 超实用!图像去畸变矫正及双线性内插法
  2. 链mysql_mysql 版本链机制 readView
  3. tp5备份mysql_tp5备份数据库
  4. 数据下载工作笔记三:脚本
  5. 用赫夫曼树进行文件的压缩
  6. “攻城狮”手把手教你物联网智能生活-内网穿透技术
  7. Exchange Server 2007邮箱存储服务器的集群和高可用性技术(上)
  8. Linux shell逐行读取文件的方法-比较
  9. 回顾2009,展望2010
  10. sqlserver与mysql的一些不同的T-SQL语句
  11. 史上最强单片机科普,看完给跪了!
  12. KETTLE 使用教程
  13. JVM之JVM运行时内存结构, JDK1.7 JVM内存结构, JDK1.8 JVM内存结构, JVM堆内存结构
  14. js 注释,分号用法
  15. Fedformer:Frequency Enhanced DecomposedTransformer for long-term series forecasting[还在学习中···]
  16. 100天带你系统入门VR/AR游戏开发,成为5G时代的“头号玩家”
  17. 金蝶EAS打开报更新失败 java.io.FileNotFoundException
  18. 2020.11.03 使用OpenCV进行图像上采样、降采样以及高斯不同操作【OpenCV C++】
  19. 少女异闻录:白鹭白百合的华丽日常 v1.02 存档
  20. 参加论文写作课后心得体会

热门文章

  1. 连通性2 无向图的双连通 bcc
  2. 爱不释手(Typingfaster)1.78beta,重大升级,欢迎试用,期待反馈。
  3. SVO中 Inverse Compositional Image Alignment方法的学习笔记
  4. svn的代码提交到git服务器_svn服务器代码仓库,数据迁移到git仓库
  5. swing 圆角按钮_JFrame实现圆角窗体
  6. Python访问街区所有节点最短路径问题,并结合matplotlib可视化
  7. PCL:点云特征描述子3D_object_recognition_(descriptors)
  8. end-to-end 的神经网络
  9. Python解析照片EXIF信息,获取坐标位置
  10. qemu模拟Cortex-A57运行Linux4.5.1