菜单

浏览器(chrome,firefox,ie)剖断

2019年8月31日 - Bootstrap

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

咱俩在选取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]);
    });www.Bkjia.com
  } 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),都得以轻易进行转移。
 

http://www.bkjia.com/Javascript/960795.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javascript/960795.htmlTechArticle浏览器内javascript 变换gbk文本到UTF8编码(chrome,
firefox only)
我们在采取xmlhttprequest获取文本内容时,借使服务器重临的是gbk(或gb2312等非utf8编码…

require(['jquery'], function($) {

    $(document).ready(function() {

        window.browser = {};
        //获取炉冷却信息字符串
        var ua = navigator.userAgent.toLowerCase();
        //浏览器信息数组,浏览器名称+版本号
        var s;
        //不同浏览器将输出一下浏览器信息
        // alert(ua);
        console.log(ua);
        // 输入结果例如:
        // 谷歌浏览器
        // mozilla/5.0 (windows nt 10.0; wow64) applewebkit/537.36 (khtml, like gecko) chrome/46.0.2490.86 safari/537.36
        // 火狐浏览器
        // mozilla/5.0 (windows nt 10.0; wow64; rv:45.0) gecko/20100101 firefox/45.0
        // IE
        // mozilla/5.0 (compatible; msie 9.0; windows nt 6.1; wow64; trident/5.0; slcc2; .net clr 2.0.50727; .net clr 3.5.30729; .net clr 3.0.30729; .net4.0c)

        //如果存在,IE
        if ((/msie ([\d.]+)/).test(ua)) {
            browser.value = ua.match(/msie ([\d.]+)/);
            browser.version = browser.value[1]; //9.0
        }
        //如果存在,firefox
        if ((/firefox\/([\d.]+)/).test(ua)) {
            browser.value = ua.match(/firefox\/([\d.]+)/);
            browser.version = browser.value[1]; //36.0
        } //如果存在,chrome
        if ((/chrome\/([\d.]+)/).test(ua)) {
            browser.value = ua.match(/chrome\/([\d.]+)/);
            browser.version = browser.value[1]; //42.0.2311.135
        } //如果存在,safari
        if ((/version\/([\d.]+).*safari/).test(ua)) {
            browser.value = ua.match(/version\/([\d.]+).*safari/);
            browser.version = browser.value[1]; //5.1.7
        }
        // alert(browser.version); //输出版本号
        console.log(browser.version)


    })
})

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图