一、首先要理解 lr_convert_string_encoding 函数对中文进行UTF-8转码 的使用
int lr_convert_string_encoding ( const char *sourceString, const char *fromEncoding, const char *toEncoding, const char *paramName);
四个参数代表的含义:
sourceString:被转换的源字符串。
fromEncoding:转换前的字符编码。
toEncoding:要转换成为的字符编码。
paramName:转换后的目标字符串。
二、解决乱码问题
1.request乱码:将中文消息使用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(lr_eval_string("{str}"),"payerName");
2.response乱码:将响应乱码lr_convert_string_encoding先转码,再输出(这样在lr的日志中就能看到正常的中文了)
注意:响应转换函数必须写在请求函数之后,如:
lr_convert_string_encoding(lr_eval_string("{ResponseBody}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"ResponseBodyUTF8"); //输出信息 //lr_output_message("# 响应内容体: %s", lr_eval_string("{ResponseBodyUTF8}"));
lr_error_message("# 错误响应内容体: %s",lr_eval_string("{ResponseBodyUTF8}"));