新的項目中,需要向應(yīng)用發(fā)送一個中文的人名: payerName : 張三,調(diào)用失敗,。,觀察錯誤日志,,發(fā)現(xiàn) 傳過去的payerName是亂碼。 解決過程: 新的項目中,需要向應(yīng)用發(fā)送一個中文的人名: payerName : 張三,,調(diào)用失敗,。,觀察錯誤日志,發(fā)現(xiàn) 傳過去的payerName是亂碼,。
解決過程:
1. Virtual User Gen的Tools->Recoding Options -> Advanced -> Support charset -> UTF-8
重試之,,無效。,。,。
2. 使用lr_convert_string_encoding函數(shù)進行強制轉(zhuǎn)碼。
[cpp] view plaincopyprint?
lr_convert_string_encoding: 對中文進行UTF-8轉(zhuǎn)碼
int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);
該函數(shù)有4個參數(shù),,含義如下:
sourceString:被轉(zhuǎn)換的源字符串,。
fromEncoding:轉(zhuǎn)換前的字符編碼。
toEncoding:要轉(zhuǎn)換成為的字符編碼,。
paramName:轉(zhuǎn)換后的目標(biāo)字符串,。
lr_convert_string_encoding: 對中文進行UTF-8轉(zhuǎn)碼
int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);
該函數(shù)有4個參數(shù),含義如下:
sourceString:被轉(zhuǎn)換的源字符串,。
fromEncoding:轉(zhuǎn)換前的字符編碼,。
toEncoding:要轉(zhuǎn)換成為的字符編碼。
paramName:轉(zhuǎn)換后的目標(biāo)字符串,。
注意: 使用這個函數(shù)轉(zhuǎn)碼出來的字符串會以 \x00 結(jié)尾,,所以要做一次額外處理。
代碼如下:
[cpp] view plaincopyprint?
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,"payerName");
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,"payerName");
然后再使用 如下方式進行調(diào)用:
[cpp] view plaincopyprint?
web_custom_request("consume",
"URL=http://192.168.12.89:8010/quickpay/v10/003",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
"Referer=",
"Mode=HTTP",
"EncType=application/json",
"Body={\"cardHolderName\":\"{payerName}\",\"cardNo\":\"4392260802828457\",\"cardTypeEnum\":\"CREDI\"}",
LAST);
web_custom_request("consume",
"URL=http://192.168.12.89:8010/quickpay/v10/003",
"Method=POST",
"Resource=0",
"RecContentType=application/json",
"Referer=",
"Mode=HTTP",
"EncType=application/json",
"Body={\"cardHolderName\":\"{payerName}\",\"cardNo\":\"4392260802828457\",\"cardTypeEnum\":\"CREDI\"}",
LAST);
再次運行腳本,,OK了,。
原文轉(zhuǎn)自:http://blog.csdn.net/on_my_way20xx/article/details/9838163
|