2024年4月3日发(作者:)

经常碰到在脚本中有输入值是中文,或者返回值中的中文是乱码的问题,今天就抽空把这个

问题解决了。主要使用到的方法是LR自带的lr_convert_string_encoding函数。废话少说,

下面是小实验。看懂这个,就知道怎么处理中文乱码问题了。哇咔咔

1、 输入值中有中文

Action()

{

//输入值中有中文

char tmp[50];

lr_convert_string_encoding( lr_eval_string("环球影院"),

LR_ENC_SYSTEM_LOCALE,

LR_ENC_UTF8,

"str" );

lr_log_message("11str is %s",lr_eval_string("{str}"));

/*

* 据说直接转换过来的内容后面,多了x00,要通过strcpy函数复制到别的变量后再

用,才不受x00的影响。

*/

strcpy(tmp,lr_eval_string("{str}"));

//lr_log_message("str is %s",tmp);

lr_save_string(tmp,"sorvalue");

lr_log_message("str is %s",lr_eval_string("{sorvalue}"));

return 0;

}

2、返回值中有中文

Action2()

{

// 返回值中有中文

lr_convert_string_encoding(

lr_eval_string("鐧戒簯鏈哄満"),

LR_ENC_UTF8,

LR_ENC_SYSTEM_LOCALE,

"strcn" );

lr_log_message("乱码对应的中文是 %s",lr_eval_string("{strcn}"));

return 0;

}