zoukankan      html  css  js  c++  java
  • java使用gbk编码读取utf8的js文件吃掉回车问题

    我是彻底的标题党,标题也表达不清楚。

    具体情况:

    网页执行js报错,因为服务器是一个自己写的js代理,所以比较好查,在firefox里发现js并成一行了,如下:

    TB.add('mod~global', function() {
            // 鍒濆鍖栧嚱鏁伴槦鍒?        runItems = {} 
        };
    });
    

    乱码是因为我读取js时使用了fileReader,编码默认是gbk,源文件如下,为utf-8编码:

    TB.add('mod~global', function() {
            // 初始化函数队列
            runItems = {}
        };
    });
    

    我就奇怪,为什么gbk编码会把换行“吞掉”,但是奇怪的是其他类似的地方都正常,网页执行正常,所以我一直也没把编码改了,直到前两天。

    由于FileReader无法传encoding参数进去,所以我改成了InputStreamReader,我测试了gbk和utf-8编码,输出结果和网页一致,gbk会并成一行。

    我很好奇,所以在源文件里又加了类似的注释,如下:

    TB.add('mod~global', function() {
            // 初始化函数队列
            runItems = {}
    		// aaaaaaaaaa
    		alert('a');
    		// aaaaaaaaaa
    		alert('a');
    		// aaaaaaaaaa
    		alert('a');
    		// aaaaaaaaaa
    		alert('a');
        };
    });
    

    在gbk编码下的执行结果:

    TB.add('mod~global', function() {
            // 鍒濆鍖栧嚱鏁伴槦鍒?        runItems = {}
    		// aaaaaaaaaa
    		alert('a');
    		// aaaaaaaaaa
    		alert('a');
    		// aaaaaaaaaa
    		alert('a');
    		// aaaaaaaaaa
    		alert('a');
        };
    });
    

    也仅有第一处注释出现问题,纳闷了。

    由于是代理服务器,编码无法写死,貌似我只能尽可能地去兼容这种问题了。。只能在服务器上开个配置处理掉了。。

    ps:怎么变成牢骚了。。。

  • 相关阅读:
    玲珑杯 1035 D-J
    多项式exp
    Thanks to World
    【uoj#191.】Unknown
    【bzoj4534】基础排序算法练习题
    【bzoj4596】黑暗前的幻想乡
    【bzoj2893】征服王
    【bzoj3876】支线剧情
    【bzoj4283】魔法少女伊莉雅
    【bzoj1822】冷冻波
  • 原文地址:https://www.cnblogs.com/xiziyin/p/1897140.html
Copyright © 2011-2022 走看看