我们在使用xmlhttprequest获取文本内容时,如果服务器返回的是gbk(或gb2312等非utf8编码)内容,那么得到的是一堆乱码,如何转换为浏览器内默认的utf8编码的文字?

其实如果您使用的是chrome 或 firefox浏览器,则非常简单,可以使用浏览器内置对象TextDecoder进行转换。

javascript示例代码:

if ('TextDecoder' in window) {var files = {'gbk.txt': 'gbk'};Object.keys(files).forEach(function(file) {fetchAndDecode(file, files[file]);});} else {console.error('Your browser does not support the Encoding API.');}function fetchAndDecode(file, encoding) {var xhr = new XMLHttpRequest();xhr.open('GET', file);xhr.responseType = 'arraybuffer';xhr.onload = function() {if (this.status == 200) {var dataView = new DataView(this.response);var decoder = new TextDecoder(encoding);var decodedString = decoder.decode(dataView);console.info(decodedString);} else {console.error('Error while requesting', file, this);}};xhr.send();}

其实不只是gbk, 只要是浏览器支持的编码(见链接3),都可以轻松进行转换。
参考:

1. https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder

2. Easier ArrayBuffer String conversion with the Encoding API

3. https://encoding.spec.whatwg.org/

浏览器内javascript 转换gbk文本到UTF8编码(chrome, firefox only)相关推荐

  1. 【Unity Editor工具制作-文本转UTF-8编码、用WPS表格打开表格、用WPS表格打开】

    Unity Editor工具制作 文本转UTF-8编码 用NotePad打开 用WPS表格打开 文本转UTF-8编码 [MenuItem("Assets/文本转UTF-8编码")] ...

  2. Python3小程序:把字符串转换成连续的UTF8编码(16位)

    # coding: utf-8 import binascii ''' 参考代码1 mystery = b"\xe5\x88\xab" x = mystery.decode('ut ...

  3. python编码转换在线_在线UTF-8编码汉字互转 | utf8编码转换器

    一.UTF-8是什么? UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码.由Ken Thompson于1992 ...

  4. java url gbk编码转换_如何在一个utf-8编码的HTML中 在javascript中url跳转时把url中的汉字改为GBK编码...

    展开全部 html文件中私用32313133353236313431303231363533e78988e69d8331333337623465JavaScript将url的汉子转为为GBK编码,主要 ...

  5. 批量转换 gbk 文件到utf8 文件,不引用三方类库【 java 代码】

    由于需要批量转换源代码从gbk编码到utf8,所以写了这个工具类. mac下面jdk11 环境执行通过 String path = ""; 替换成 文件或者目录,运行程序即可完成批 ...

  6. js html utf8编码转换,js中的UTF-8编码与解码

    讲解之前我们先了解一些基本概念,什么是字符集?字符集就像一张表,这个表里面有很多的符号,每个符号都可以通过下标(这个符号在表的中的序号)对应到,有点类似js中的map,例如97这个下标代表的就是符号a ...

  7. signature=b8cae5ae994df93c3fedf622c2a51ac5,javascript中的Base64、UTF8编码与解码详解

    Base64编码说明 Base64编码要求把3个8位字节(3*8=24)转化为4个6位的字节(4*6=24),之后在6位的前面补两个0,形成8位一个字节的形式. 如果剩下的字符不足3个字节,则用0填充 ...

  8. html中转换utf8编码,如何将html网页utf-8编码转换到utf-8编码互转换

    HTML网页是有编码的,在head区域内的这句话是告诉浏览器,该网页采用的是utf-8编码,也就是简体中文编码.当文章/网页中包含繁体中文.日文.韩文时,这些内容可能无法被正确编码. UTF-8是UT ...

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

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

最新文章

  1. windows系统解决github.com访问超时
  2. C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针
  3. Java 20年:历史与未来
  4. Linq 实现 DataTable 行转列
  5. java获取mysql执行计划_好程序员Java学习路线之MySQL的执行计划
  6. php静态stitac,php静态static介绍
  7. springboot整合freemarker中文乱码
  8. 佛祖保佑,永无BUG
  9. LINUX中获得cpu名称
  10. Windows下安装Redis图文教程
  11. 全面拆解携程云原生实践,打造智能弹性的云端酒店直连系统
  12. 虚拟服务器修改教程,飘渺雪域商业一键虚拟端+修改元宝教程【无标题亲测
  13. 猫云bootcdn.cn
  14. 如何下载股票的历史收盘价 股票历史收盘价下载方法
  15. 机器视觉halcon——距离测量
  16. 卷积神经网络膨胀卷积
  17. 成功股权激励方案的特点
  18. python实现证件照更换背景颜色
  19. 去哪儿实习面经(拿到offer)
  20. 高德(百度)地图驾车路线规划和清除

热门文章

  1. 分类信息的上市之战,58同城为何能先人一步?
  2. 性能测试之性能测试需求分析
  3. e语言mysql怎么放在超级列表框,『易语言怎么将超级列表框的内容保存到excel或者Access!』...
  4. Mybatis-Plus动态表名插件实现数据库分表查询
  5. 计算机专业就业率就业薪资图表,10大热门专业“工资”大揭秘,软件工程最高,会计垫底?...
  6. PHP 获取 IP 地址 函数封装
  7. 强制删除docker容器
  8. #今日论文推荐# ICDE 2022 | 港大等提出:基于时空自监督学习的犯罪预测
  9. VR交互动画短片《拾梦老人》的开发经历
  10. linux 程序怎么执行文件格式,linux汇编之——(1)ELF:Linux可执行程序文件格式