项目需要,JS 中调用REST接口 返回的是 GBK 字符串。这可以说是每一个新手程序员都深恶痛绝的问题了

要搞清楚编码间的关系,以及字符串底层的处理方式,不是一件容易的事,

折腾了好几天,才终于找到解决方法,也算是 精诚所至,金石为开吧

在JS 中都是使用的UTF-8,.页面上显示GBK 就是乱码。

1、对传入的GBK字符串,要用数据流接收,具体到angularjs中,$http 请求中需要覆盖参数responseType , responseType: "arraybuffer",

$http({method: "POST",responseType: "arraybuffer",url: "restcater/cenchain/findCenChain",data: branchlist
})

2、解析

var x = new Uint8Array(resp.data);

var str =new TextDecoder('gbk').decode(x);
已经正常识别了。

/

3、UTF-8提交的数据转为GBK,要引用第三方JS库

https://github.com/inexorabletash/text-encoding

<script>// var TextEncoderOrg = window.TextEncoder;
  // ... and deactivate it, to make sure only the polyfill encoder script that follows will be used
  window.TextEncoder = null;
</script>
<script src="lib/text-encoding/encoding-indexes.js"></script>
<script src="lib/text-encoding/encoding.js"></script>
//获取GBk编码的int8数组
var uint8array =  new TextEncoder("gbk",{ NONSTANDARD_allowLegacyEncoding: true }).encode(string);
// 放入blob中准备上传
var blob=new Blob([uint8array],{type:"text/plain"});

js gbk与UTF8 转换相关推荐

  1. html utf8转换工具,GB/BIG5/UTF-8 文件编码批量转换工具

    GB/BIG5/UTF-8 文件编码批量转换工具是一款单一文件与批量转换编码工具将 GB.BIG5.UTF-8 文件相互转换,方便的批量处理能力,主要用于网站文件编码方式的整体转换上. 某天, ...

  2. android utf-8 转 gbk编码,【字符编码系列】GBK,UTF-8,UTF-16之间的转换

    写在前面的话 本文属于 字符编码系列文章之一,更多请前往 字符编码系列. 大纲 不同编码转换的理论基础 UTF-16转UTF-8 UTF-16转GBK UTF-16和UTF-8之间的转换 UTF-16 ...

  3. 编码与乱码(05)---GBK与UTF-8之间的转换--转载

    原文地址:http://www.blogjava.net/pengpenglin/archive/2010/02/22/313669.html [GBK转UTF-8] 在很多论坛.网上经常有网友问&q ...

  4. C#_汉字与GBK,Unicode,UTF-8编码之间的转换

    IT发展至今,字符编码版本众多,目前流行的GBK,Unicode,UTF-8编码与汉字的转换可用如下代码: private void button1_Click(object sender, Even ...

  5. 网页UTF8转换GBK后出现问号?的原因

    网页UTF8转换GBK后出现问号"?"的原因 网页编码转换是进行网页解析和处理的第一步. 互联网上越来越多的网页采用UTF-8编码,UTF-8用1到6个字节编码UNICODE字符, ...

  6. utf-8转换gbk代码_将代码转换为现金-如何以Web开发人员的身份赚钱并讲述故事。...

    utf-8转换gbk代码 by Kurt 由库尔特 将代码转换为现金-如何以Web开发人员的身份赚钱并讲述故事. (Turning code to cash - How to make money a ...

  7. Qt4工作笔记-Linux中Qt4.8.6在GBK和UTF-8编码转换

    目录 基本概念 代码与实例 基本概念 背景是这样的.目前在本人开发的系统里面,有几个程序. 使用Qt管理(通过pro文件,生成Makefile,姑且称为Qt管理把)的后台进程,读取关系型数据库的数据后 ...

  8. bee 字符串转int_beego中gbk和utf8编码转换问题

    beego中gbk和utf8编码转换问题,这个问题非常重要,有时候从gbk采集过来转成utf8也非常重要. func Get_cate_urls(url string) (map[int]string ...

  9. gbk转utf-8 iconv 编码转换

    linux下面有时候 字符需要进行编码转换(爬虫将gbk转为utf-8编码...),一般可以选择iconv函数. 终端下面  输入 man 3 iconv 得到  iconv函数的使用方法. 个人看习 ...

最新文章

  1. poj3259(Bellman_ford算法)
  2. 第六课.Python函数(三)
  3. 第一百零五期:5年前,跳槽涨薪,你笑了,5年后,跳槽降薪,你慌了!
  4. PRML-系列一之1.2.2~1.2.3
  5. java实现选择排序+图解+代码解析
  6. win32api之添加水印
  7. 按键精灵打怪学习-窗口绑定技能
  8. python做var模型的滞后阶数怎么确定_VAR模型滞后阶数
  9. 【笔记】(python)写入文件:写入空文件、写入多行、附加到文件
  10. E1630加工散热孔:中兴路由器wifi6千兆E1630电信商企版Wi-Fi6路由器3000M全千兆
  11. 萤石云摄像头Http接口云台控制开发
  12. 为什么csgo一直显示连接官方服务器失败,CSGO提示连接任意官方服务器失败怎么办?五大详细解决方法看这里!...
  13. c语言数值常量4.5e0,c语言数值常量表示方法问题
  14. 第二章 Dubbo框架
  15. 两条线段的交点的计算
  16. MultiPath: Multiple Probabilistic Anchor Trajectory Hypotheses for Behavior Prediction
  17. GDPR: Impact to Your Data Management Landscape: Part 2
  18. NOI-1.2(01) 整型数据类型存储空间大小
  19. 华为鸿蒙怎么玩,刷爆朋友圈的华为鸿蒙,到底是什么?
  20. AI芯片又一冲击!谷歌发布Edge TPU是为了AIY项目?

热门文章

  1. 17-1-数据处理思想和程序架构: 单片机stm32的flash保存数据优化方案(让擦写次数达到上百万至上千万次)
  2. 计算机网络和办公室自动化设备管理,通讯、计算机信息(含互联网)及办公自动化设备的安全保密管理暂行规定...
  3. PHP水仙花数程序设计思路,php实现水仙花数示例分享
  4. 关于SCCM软件分发管理分享
  5. MicroRNAs在HBV阳性肝细胞癌免疫耐受形成中的功能及机制研究
  6. XigmaNas系统(二):蜗牛星际安装Xigmanas(Nas4Free)
  7. yolov5-6.0/6.1加入SE、CBAM、CA注意力机制(理论及代码)
  8. google 确定某点海拔高_如何查询某个地点的海拔高度,详情介绍
  9. Yapi命令执行漏洞复现
  10. 基于Modis数据监测森林火灾