大开测试:性能—如何解决脚本中的乱码问题(连载7)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大开测试:性能—如何解决脚本中的乱码问题(连载7)相关的知识,希望对你有一定的参考价值。

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

1.问题提出

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

2.问题解答

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

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

洲和非洲语言也不能被8位字符集所支持。但是把汉语、日语和越南语的一些相似的字符结合起来,在不同的语言里,使不同的字符代表不同的字,这样只用2个字节就可以编码地球上几乎所有地区的文字。因此,创建了UNICODE编码。它通过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1字符。UNICODE支持欧洲、非洲、中东、亚洲(包括统一标准的东亚象形汉字和韩国象形文字)。但是,UNICODE并没有提供对诸如BrailleCherokeeEthiopicKhmerMongolianHmongTaiLuTai Mau文字的支持。同时它也不支持如AhomAkkadianAramaicBabylonian CuneiformBaltiBrahmiEtruscanHittiteJavaneseNumidianOldPersian CuneiformSyrian之类的古老的文字。

所以,对可以用ASCII表示的字符使用UNICODE并不高效,因为UNICODEASCII占用大一倍的空间,而对ASCII来说高字节的0对它毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,它们被称为通用转换格式,即UTFUniversalTransformation Format)。目前存在的UTF格式有UTF-7UTF-7.5UTF-8UTF-16,以及UTF-32。本文讨论UTF-8字符集。

UTF-8UNICODE的一种变长字符编码,由Ken Thompson1992年创建。现在已经标准化为RFC 3629UTF-816个字节编码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”选项就可以解决这个问题,如图7-18所示,如果您还想调整脚本的字体,也可以通过选择【Tools>General Options>Environment】项,单击【Select Font...】按钮,选择适合的字体及字体的大小,如图7-19所示。

技术分享         技术分享

7-18  录制选项对话框                                7-19  常规选项对话框

7-18Supportcharset支持字符集)说明如下。

l  UTF-8。通过该选项可支持UTF-8编码。该选项指示VuGen将非ASCIIUTF-8字符转换为本地计算机上的编码,以便在VuGen编辑器中正确显示它们。如果启用UTF-8支持选项,则无法录制非UTF-8字符集的站点。

EUC-JP。对于日文版Windows的用户,请选择该选项以支持使用EUC-JP字符编码的网站。该选项指示VuGenEUC-JP字符转换为本地计算机上的编码,以便在VuGen编辑器中正确显示它们。VuGen会将所有EUC-JP(日文版UNIX)字符串转换为本地计算机上的SJIS(日文版Windows)编码,并在脚本中添加web_sjis_to_euc_param函数。



更多信息请关注大开科技公众号或官方网站

www.dakaikeji.com.cn

技术分享


以上是关于大开测试:性能—如何解决脚本中的乱码问题(连载7)的主要内容,如果未能解决你的问题,请参考以下文章

大开测试:性能—如何将Connect()中的密文改为明文(连载5)

大开测试:性能-如何实现脚本分步录制(连载10)

大开测试:性能-如何实现脚本分步录制(连载10)

大开测试:性能—如何解决数据库查询结果过大导致录制失败(连载3)

大开测试:性能- 如何在脚本中加入DOS命令(连载17)

大开测试:性能- 如何理解Return的返回值(连载14)