遇到的问题

最近项目做二维码分享链接过程中遇到了个小问题,使用Java后端生成二维码链接时,当拼接的参数中带有中文,使用手机浏览器扫码正常,但是用微信扫码,url中的中文被和谐掉了,导致页面显示有问题。

解决办法

解决方案首先想到的就是url编码以及转码,即后端将url进行编码,然后在前端进行解码。下面分享一种网上找到的博主的解决办法,留作备忘。

  • 后端创建编码工具类 UriEncoder(核心方法如下)
public static String encodeURIComponent(String input){if (null == input || "".equals(input.trim())){return input;}int l = input.length();StringBuilder o = new StringBuilder(l * 3);try{for (int i = 0; i < l; i++ ){String e = input.substring(i, i + 1);if (ALLOWED_CHARS.indexOf(e) == -1){byte[] b = e.getBytes("utf-8");o.append(getHex(b));continue;}o.append(e);}return o.toString();}catch (UnsupportedEncodingException e){e.printStackTrace();}return input;}private static String getHex(byte buf[]){StringBuilder o = new StringBuilder(buf.length * 3);for (int i = 0; i < buf.length; i++ ){int n = (int)buf[i] & 0xff;o.append("%");if (n < 0x10){o.append("0");}o.append(Long.toString(n, 16).toUpperCase());}return o.toString();}
  • 在项目拼url链接中使用(示例)
String act_name_encode = UriEncoder.encodeURIComponent(act_name);
  • 前端解析链接(不需要解码)uniapp 解析示例
let routes = getCurrentPages(); // 获取当前打开过的页面路由数组//如果是H5,则需要curPage.$route.query(H5中的curPage.options为undefined)
let curParam = routes[routes.length - 1].options || routes[routes.length - 1].$route.query; //获取路由参数
//获取参数
let param = [];
for (let key in curParam) {param.push(curParam[key]);
}
let act_name = param[0];

Java前后端分离项目生成二维码链接带中文参数遇到的问题及解决办法相关推荐

  1. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)二十二(下单和微信支付)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)二十(下单) 0.学习目标 会调用订单系统接口 实现订单结算功能 实现微信支付功能 1.订单 ...

  2. 驾校分期-众筹项目java前后端分离项目vue(微信小程序+java前后端源码下载)

    可以idea直接打开,mysql数据库项目,前后端分离项目vue,分期可自动设置,自动换算金额 驾校分期-众筹项目java前后端分离项目vue(微信小程序+java前后端源码下载)

  3. Vue项目生成二维码

    场景: [民主测评.闭卷测试] Vue项目生成二维码,使用手机浏览器扫码录入答题 一,创建vue项目,样式布局,接口联调, npm run build 打包成dist 文件,让后台发送到服务器中,页面 ...

  4. java 简单快速的生成二维码(带图片)

    **使用java+zxing 简单快速的生成二维码.** 效果图: 首先需要引入两个jar文件: <dependency><groupId>commons-codec</ ...

  5. (转)ZXing生成二维码和带logo的二维码,模仿微信生成二维码效果

    场景:移动支付需要对二维码的生成与部署有所了解,掌握目前主流的二维码生成技术. 1 ZXing 生成二维码 首先说下,QRCode是日本人开发的,ZXing是google开发,barcode4j也是老 ...

  6. Py之qrcode:调用python的qrcode库两种方式生成二维码、带logo的二维码

    Py之qrcode:调用python的qrcode库两种方式生成二维码.带logo的二维码 目录 python编程实现生成二维码 1.第一种方式-纯文本 2.第二种方式-带logo

  7. Qrcode生成二维码链接地址,网页授权获取微信用户信息

    (1)一个简单的二维码地址生成使用easywechat扫描获取微信用户的信息: 首先生成二维码链接这里引用的QrCode生成的 QrCode::size(300)->generate($url] ...

  8. 生成二维码,支持中文

    C# Code: /// <summary> /// 生成二维码,支持中文 /// </summary> /// <param name="data" ...

  9. 这几个SpringBoot前后端分离项目(附源码),改改就能换钱。。。

    点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 Happiness comes when we stop comp ...

最新文章

  1. Elasticsearch 在互联网公司大量真实的应用案例
  2. delphi usb 通信_意法半导体推出集成共模滤波器和ESD抑制功能的新汽车通信保护器件...
  3. rsynv+inotify触发试实时同步
  4. C语言实现最短路径Bellman-Ford算法(附完整源码)
  5. 014、BOM与DOM对象的应用
  6. context set_parameter all_req_parameters /iwfnd/if_sodata_types=gcs_iwf_context
  7. 从数学入手,3招打破机器学习的边界
  8. [转] Java, 使用 Reactor 进行反应式编程
  9. Gompertz模型绘图 matlab,Logistic模型matlab求解
  10. Python自动化二--jmeter分布式测试,抓包,python语法基本介绍
  11. 软件工程师关注的播客
  12. linux work 账户管理,Homework Week-3 用户管理
  13. 华三交换机配置access命令_华3交换机配置命令大全
  14. 一步一步带你训练CTPN
  15. QQ坦白说抓包破解与PacketCapture使用介绍
  16. laravel文档工具
  17. Friends 第一季英文学习整理
  18. itext设置字体间距_微信公众号文章字体怎么修改?行间距、字间距一般设置多少?...
  19. 讯飞翻译机抢镜背后,跨语种沟通迈入全新时代
  20. IT公司聘用应届生的标准是什么?到底看中应届生的什么?

热门文章

  1. h5 高斯模糊_CSS滤镜工具 轻松实现多种照片特效 – css Filters
  2. linux设置成自动获取ip地址吗,centos怎么设置自动获取ip地址
  3. Python测试Post请求
  4. html 指定 favicon,favicon 不只是个图标
  5. C++各大有名库总结
  6. dubbo服务的集群扩展、目录服务、路由规则、负载均衡
  7. jquery 获取radio的值
  8. 1.架设邮件服务器-概念
  9. maven profile filter 线上线下分开打包配置
  10. 基金投资好简单,从入门到精通 -学习笔记day3