linux下java调用so库的编码有关问题,

linux下java调用so库的编码问题,急急急急急急!
我在linux下用java简单写了个调用so的程序,但是我在java调用so参数传汉字的时候,出现乱码,数字和字母都正常显示,我知道编码格式不正确,但是不知道java下string定义的字符串和用C写的定义的char的字符串格式有什么不同,也不知道怎么转换,大神们帮帮忙,给个能把java定义的string转换成C里面char可以正常显示的方法(数字和字母都可以正常显示,汉字乱码)

linux下java调用so库的编码有关问题,这是我的java代码

linux下java调用so库的编码有关问题, 这是java调用so 的时候,C里面的函数

linux下java调用so库的编码有关问题, 这是java调用so里面的Send_Data()函数的时候,转换后,数字和字母能正常显示,汉字printf出来就乱码了
------解决方案--------------------
我猜java字符串编码是utf8
------解决方案--------------------
linux的汉字编码是UTF-8,而windows上的汉字编码是GB2312,可能和这儿有关系