由于需要做web自动化测试,而我们的被测对象的预期值的来源是从一个url页面上获取数据的,刚开始时候我使用的xp系统的字符集是UTF-8的,而url地址的数据的字符集也是UTF-8的,所有我在获取URL页面的数据时候没有出现任何编码问题。到后来我把程序放到另外一台机器上执行时候却出现了乱码,刚开始还不知道怎么回事,后来经过多次查资料才发现另外一台机器的编码是GBK的,这样我在获取UTF-8字符时候没有转码,这样乱码就产生了,所以我们一定要在获取URL页面内容时候就转码,如果在获取时候没有转码,而在其它地方转码了,这样也是不可以的。以下是我的代码:
URL urlObject = new URL(url);
URLConnection conn = urlObject.openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
其中这里的“UTF-8”就是URL页面中字符的编码。