lr_convert_string_encoding: 對中文進行UTF-8轉碼
int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);
該函數有4個參數,含義如下:
sourceString:被轉換的源字符串。
fromEncoding:轉換前的字符編碼。
toEncoding:要轉換成為的字符編碼。
paramName:轉換后的目標字符串。
描述:LR錄制的時候可以通過在VuGen的Tools-Recoding Options-Advanced—Support charset—UTF-8設置,只是部分規避。
實例:在腳本中直接采用中文明文進行請求
web_custom_request(“web_custom_request”, “URL=http://172.16.4.191/list?id=環球影院”, “Method=GET”, “TargetFrame=”, “Resource=0”, “Referer=”, “Body=”, LAST);
結果:服務器返回404錯誤,找不到相應的資源id,明顯服務器不能正確響應非UTF-8編碼方式的請求。為了解決這個問題,最關鍵的是要把本地的GBK編碼的漢字轉換成UTF-8編碼格式的信息,為此我們引入了LR自帶的編碼函數lr_convert_string_encoding.
char tmp[50]; lr_convert_string_encoding(“環球影視”, LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8, “str”); strcpy(tmp,lr_eval_string(“{str}”)); lr_save_string(tmp,”sorvalue”); web_custom_request(“web_custom_request”, “URL=http://172.16.4.191/list?id={sorvalue}”, “Method=GET”, “TargetFrame=”, “Resource=0”, “Referer=”, “Body=”, LAST);
通過strcpy和lr_save_string的處理屏蔽\x00的影響,測試結果正常,正常返回HTTP反應內容。