浏览器内javascript 转换gbk文本到UTF8编码(chrome, firefox onl

我们在使用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 onl

相关文章:

你感兴趣的文章:

标签云: