LoadRunner字串編碼轉換函式:lr_convert_string_encoding
最近在除錯指令碼的過程中,多次用到LoadRunner字串編碼轉換函式lr_convert_string_encoding,這裡簡單總結一下,方便以後參考~
1.函式實現
Loadrunner自帶函式,直接使用即可
lr_convert_string_encoding
//C Language
int lr_convert_string_encoding( const char *sourceString, const char *fromEncoding,const char *toEncoding, const char *paramName);
官方引數解釋:
sourceString |
The string to convert |
fromEncoding |
The encoding of the sourceString |
toEncoding |
The encoding to convert of the string saved in parameter paramName |
paramName |
The name of the parameter in which the destination string will be saved |
對應的中文引數解釋:
sourceString:被轉換的源字串。
fromEncoding:轉換前的字元編碼。
toEncoding:要轉換成為的字元編碼。
paramName:轉換後的目標字串。
lr_convert_string_encoding converts a string encoding betweenthe following encodings: System locale, Unicode, and UTF-8. The function savesthe result string, including its terminating NULL, in the parameter paramName.
根據上面的說明,這個函式其實只是把字串在三種編碼格式中做轉換,所以其實功能也是有限的,不過也已經可以適用到我們常見的一些場景了。常量和值的對應關係如下:
Possible values for 'fromEncoding'and 'toEncoding' :
Constant |
Value |
LR_ENC_SYSTEM_LOCALE |
NULL |
LR_ENC_UTF8 |
"utf-8" |
LR_ENC_UNICODE |
"ucs-2" |
2.Loadrunner中的使用
在URL請求的返回訊息中,我們有時候會遇到中文返回被編碼的情況,不易識別,這時候就可以用編碼轉換函式,方便除錯指令碼。
Action()
{
int compare=1;
web_reg_save_param("payRespBody",
"LB=",
"RB=",
"NotFound=ERROR",
"Search=Body",
LAST);
web_reg_save_param("responseMsg",
"LB=responseMsg\":\"",
"RB=\",",
"NotFound=ERROR",
"Search=All",
LAST);
web_custom_request("pay.htm",
"URL=http://xxx/a/b/pay.htm?x={orderId}&pwd=x",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=application/json",
"Referer=",
"Mode=HTML",
"EncType=application/x-www-form-urlencoded; charset=UTF-8",
LAST);
lr_convert_string_encoding(lr_eval_string("{responseMsg}"),"utf-8",NULL,"msg");//將返回訊息responseMsg值做編碼轉換
lr_output_message("轉換編碼前payRespBody----%s",lr_eval_string("{payRespBody}"));
lr_convert_string_encoding(lr_eval_string("{payRespBody}"),"utf-8",NULL,"bodymsg"); <pre name="code" class="cpp"> //將返回訊息的body做編碼轉換
compare=strcmp(lr_eval_string("{msg}"),"支付成功");//將編碼轉換後的responseMsg值與可識別的中文做比較,判斷事務成功或失敗
if(compare==0){
lr_end_transaction("3--支付",LR_PASS);
}
else{
lr_end_transaction("3--支付",LR_FAIL);
lr_output_message("支付失敗orderId:----%s,responseMsg----%s",lr_eval_string("{orderId}"),lr_eval_string("{msg}"));//列印轉換編碼後的返回
lr_output_message("轉換編碼後payRespBody----%s",lr_eval_string("{bodymsg}"));//列印轉換編碼後的返回,便於定位問題
}
return 0;
}
通過對比轉換前和轉換後的值可以發現,編碼轉換後,中文變得可識別,方便了指令碼除錯和指令碼問題定位及解決。Action.c(x): 轉換編碼前payRespBody----{"responseMsg":"鏀粯澶辮觸","success":false}
Action.c(y): 轉換編碼後payRespBody----{"responseMsg":"支付失敗","success":false}
相關推薦
LoadRunner字串編碼轉換函式:lr_convert_string_encoding
最近在除錯指令碼的過程中,多次用到LoadRunner字串編碼轉換函式lr_convert_string_encoding,這裡簡單總結一下,方便以後參考~ 1.函式實現 Loadrunner自帶函式,直接使用即可 lr_convert_string_
LoadRunner字串編碼轉換的函式lr_convert_string_encoding
在LoadRunner中,為我們提供了一個字串編碼轉換的函式 int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEnc
關於python的字串大小轉換函式:capitalize() title() upper() swapcase()
原以為寫了,找的我好苦!結果竟然沒寫! 補上: capitalize():讓字串首字母變成大寫! title():所有單詞開頭字母變成大寫! upper():整個字串的所有字母變成大寫! swapcase():所有字母進行大小寫轉換! 程式碼:
轉換函式:TO_CHAR()用法之一 將一個數值轉化成字串
格式:TO_CHAR(number,format) 即 TO_CHAR((數值,格式) 用法: 1、不指定格式的 TO_CHAR函式將數值轉換成簡單字串形式。 例: TO_CHAR(123) 結果 123
Python字串編碼轉換
使用encode()方法編碼 str.encode([encoding="utf-8"][,errors="strict"]) str:表示需要轉換的字串 encoding=“utf-8”:可選引數
Java 正確的做字串編碼轉換
1.字串的內部表示 字串在java中統一用unicode表示( 即utf-16 LE) , 對於 String s = “你好哦!”; 如果原始碼檔案是GBK編碼, 作業系統(windows)預設的環境編碼為GBK,那麼編譯時, JVM將 按照GBK編碼將
PHP圖片與base64字串相互轉換函式
/** * base64字串轉換成圖片 * @param string $base64_string base64字串 * @param unknown $path 圖片儲存路徑 * @param string $prefix 圖片字首 * @return boolean */ function
java字串編碼轉換及在tomcat中的應用
最近在正式環境中手機訪問系統時,中文都會出現亂碼的情況。順帶研究一下字符集的問題。字串編碼轉換java檔案編譯時,JVM按照檔案的編碼方式解析成字元,然後轉換為unicode格式的位元組陣列。 那麼不論原始碼檔案是什麼格式,同樣的字串,最後得到的unicode位元組陣列是完全
java中String字串的替換函式:replace與replaceAll的區別
1>replace的引數是char和CharSequence,既可以支援字元替換,也可以支援字串替換。 2>replaceall引數是regex, replacement,regex表示是正則表示式。 replace : String src = new Strin
linux c 字元編碼轉換函式 iconv
一、利用iconv函式族進行編碼轉換 在LINUX上進行編碼轉換時,既可以利用iconv函式族程式設計實現,也可以利用iconv命令來實現,只不過後者是針對檔案的,即將指定檔案從一種編碼轉換為另一種編碼。 iconv函式族的標頭檔案是iconv.h,使用前需包含之。 #
python中字串編碼轉換
字串編碼轉換程式設計師最苦逼的地方,什麼亂碼之類的幾乎都是由漢字引起的。 其實編碼問題很好搞定,只要記住一點: 任何平臺的任何編碼,都能和Unicode互相轉換。 UTF-8與GBK互相轉換,那就先把UTF-8轉換成Unicode,再從Unicode轉換成GBK,反之同理。 注意:在python3中en
主機位元組序與網路位元組序的轉換函式:htonl、ntohl、htons、ntohs
Part 1: htons函式具體解釋 在Linux和Windows網路程式設計時需要用到htons和htonl函式,用來將主機位元組順序轉換為網路位元組順序。 在Intel機器下,執行以下程式 int main() ...{ printf(
java字串應用之字串編碼轉換
{ /** *//** 7位ASCII字元,也叫作ISO646-US、Unicode字符集的基本拉丁塊 */ publicstaticfinal String US_ASCII ="US-ASCII"; /** *//** ISO拉丁字母表 No.1,也叫做ISO-LATIN-1
Java字串編碼轉換UTF-8
import java.io.UnsupportedEncodingException; /** * * * 描述:<p> 功能描述,該部分必須以中文句號結尾。</p> * 建立日期:2012-7-16 下午4:28:16<
自定義數字和字串的轉換函式
C語言中,常見的字串與數字之間的相互轉換的庫函式有:atof(字串轉換成浮點數)、atoi(字串轉換成整型數)、atol(字串轉換成長整形數)、itoa(整型數轉換成字串)、ltoa(長整型數轉換成字串)等。在求職中,讓求職者自定義此類函式的實現是為了考察求職者
javascript 物件與字串相互轉換函式 JSON.stringify 和 JSON.parse 的使用
JSON.stringify() The JSON.stringify() method converts a JavaScript value to a JSON string, optionally replacing values if a repla
[Swift]庫函式atoi:將字串內容轉換為整數
1、如果第一個非空格字元存在,是數字或者正負號則開始做型別轉換,之後檢測到非數字(包括結束符 \0) 字元時停止轉換,返回Int32整形數。否則,返回0。 1 //返回Int32位整形 2 print(atoi("123456")) 3 //Print 123456 4 print(atoi("
劍指offer:第49題字串轉化成整型(題目要求:不要用轉換函式)
思路:拆分在合併,有非數字符號的return 0; public class _Test49 { public static void main(String[] args) { Scanner scanner = new Scanner
DB2常用函式二:型別轉換函式
CAST表示式用來轉換型別使用 Sql程式碼 SELECT CAST(CURRENT TIME AS CHAR(8) )&nb
[Visual Studio C++] [MFC 除錯錯誤]:不存在從"CString"到"char"的適當轉換函式
1.編譯問題描述: 不存在從"CString"到"char"的適當轉換函式。 2.錯誤程式碼: writeint=a