Unity C#通过动态链接库调用C++传递中文字符串乱码问题。

我在C++端写了一个函数,参数有一个char* 类型的字符串表示文件名,函数里面通过调用win32API实现将这个文件名所指向的文件写入系统剪切板便于用户在别处手动粘贴。
C#脚本导入动态链接库的时候,形参声明为了byte[]类型,在传递实参时,使用System.Text.Encoding.ASCII.GetBytes将string类型转换成ASII字符序列。
如果动态链接库发布x64版本,中文的路径和文件名都正常,可是如果动态链接库发布86版本,传递过去的字符串如果带有中文路径就会出现乱码,而如果只是中文文件名,。目录是英文和数字,就正常。
据我所知系统位数不会影响字符串编码吧?请问有谁知道原因。

2个回答

看看是不是字符集影响的

qq_28768929
A丶Knight ASCII多字节字符串也会涉及到与字符集相关的问题吗?我测试下看看
一年多之前 回复

ASCII不支持中文,需要把中文编码成utf8,然后再传给char数组,接受后再解码utf8回

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!