Test8848软件测试学苑.软件测试技术网站,软件测试培训
技术资料
技术资料
您当前的位置:首页 > 技术资料

LoadRunner-如何解决脚本中的乱码问题

日期:2019-03-14
  1. 问题提出

  平时在对Web应用程序进行性能测试时,可能会出现录制的脚本中汉字变为乱码的现象。

  2. 问题解答

  在所有字符集中,最知名的可能要数ASCII的7位字符集了。它是美国信息交换标准委员会(Amercican Standards Committee for Information Interchange)的缩写,为美国英语通信所设计。它由128个字符组成,包括大小写字母、数定0 ~ 9、标准符号、非打印字符(换行符、制表符4个)以及控制字符(退格、响铃等)。

  但是,由于它是针对英文设计的,当处理带有音调标号(形如汉语拼音)的欧洲文字时就会出现问题。因此,创建出了一些包括255个字符的由ASCII扩展的字符集。其中的一种为IBM字符集,它把值为128~255的字符用于画图和画线,还有一些特殊的欧洲字符。另外一种8位字符集是ISO 8859-1 Latin 1,简称ISO Latin-1。它把位于128~255的字符用于拉丁字母表中的特殊语言的编码,也因此而得名。

  亚洲和非洲语言也不能被8位字符集所支持。但是把汉语、日语和越南语的一些相似字符结合起来,在不同的语言里,使不同的字符代表不同的字,只用2个字节就可以编码世界上几乎所有地区的文字。在此创建了UNICODE编码。它通过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1字符。UNICODE支持欧洲、非洲、中东、亚洲(包括统一标准的东亚象形汉字和韩国象形文字)。但是,UNICODE并没有提供对诸如Braille、Cherokee、Ethiopic、Khmer、Mongolian、Hmong、Tai Mau文字的支持,也不支持如Ahom、Akkadian、Aramaic、Babylonian Cuneiform、Balti、Brahmi、Etruscan、Hittite、Javanese、Numidian、Old Persian Cuneiform、Syrian之类的古老文字。

  因此,对可以用ASCII表示的字符使用UNICODE并不高效,因为UNICODE比ASCII占用的空间大一倍,而对于ASCII来说,高字节的0对它毫无用处。为了解决这个问题,出现了一些中间格式的字符集,它们被称为通用转换格式(unversal transformation format,UTF)。目前UTF格式有UTF-7、UTF-7.5、UTF-8、UTF-16和UTF-32。本文讨论UTF-8字符集。

  UTF-8是UNICODE的一种变长字符编码,由Ken Thompson于1992年创建,现在已经标准化为RFC 3629。UTF-8用1~6个字节编码UNICODE字符。如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节,而如果UNICODE字符由4个字符表示,则编码成UTF-8可能需要6个字节.用4个或6个字节编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE字符。

  脚本中的汉字之所以会显示为乱码,主要就是因为默认情况下应用的是ASCII字符集。解决方法是选择【Tools】>【Recording Options】>【HTTP Properties】>【Advanced】>【Support charset】项,再选中UTF-8选项即可以,如果想调整脚本的字体,可以选择【Tools】>【General Options】>【Environment】项,单击【Select Font】按钮,选择适合的字体及字体的大小。