先來認識下lr_convert_string_encoding:
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:轉換后的目標字符串。
常量和值得關系:
Constant |
|
1、request亂碼:將中文消息使用lr_convert_string_encoding先轉碼,再傳入請求參數
注意:請求轉碼函數必須寫在請求函數之前
1 //中文請求參數轉換 2 lr_convert_string_encoding( "我是肖恩",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8, "str" ); 3 lr_save_string(lr_eval_string("{str}"),"strvalue");
2、response亂碼:將響應亂碼lr_convert_string_encoding先轉碼,再輸出(這樣在lr的日志中就能看到正常的中文了)
注意:響應轉換函數必須寫在請求函數之后
1 //響應亂碼轉換 2 lr_convert_string_encoding(lr_eval_string("{value01}"), LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,"BM"); 3 lr_error_message(lr_eval_string("{BM}"));
兩種完整代碼如下:
1 web_reg_save_param_ex( 2 "ParamName=value01", 3 "LB=,\"msg\":\"", 4 "RB=,\"data", 5 SEARCH_FILTERS, 6 LAST); 7 //中文請求參數轉換 8 lr_convert_string_encoding( "我是肖恩",LR_ENC_SYSTEM_LOCALE,LR_ENC_UTF8, "str" ); 9 lr_save_string(lr_eval_string("{str}"),"strvalue"); 10 //下訂單 11 web_custom_request("下訂單", 12 "URL=http://192.168.145.130:8080/mobile/api/order/addorder", 13 "Method=POST", 14 "TargetFrame=", 15 "Resource=0", 16 "Referer=", 17 "Mode=HTML", 18 "EncType=application/json", 19 "Body={\"token\":\"{get_token}\",\"getAddrId\":1,\"getCarId\":23,\"payType\":2,\"remark\":\"{strvalue}\",\"price\":1,\"orders\":[{\"getTime\":\"1450921104000\",\"goodss\":[{\"goodsId\":93,\"count\":1},{\"goodsId\":96,\"count\":1}]}],\"invoiceTitle\":\"fapiao\"}", 20 LAST); 21 //響應亂碼轉換 22 lr_convert_string_encoding(lr_eval_string("{value01}"), LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,"BM"); 23 lr_error_message(lr_eval_string("{BM}"));
3、lr里面亂碼設置:(此方法不一定能解決響應亂碼問題,但是大部分都可以解決)
小白記錄~~ 歡迎評論留言~~