日文转中文的困惑.有实例!
用delhpi 7 中文简体版 + 中文环境 开发;
第一次实验:
第一步:
在日文电脑中,我用FindFirst和FindNext读出文件名,
第二步:
把读到的文件名赋给edit1.text中,
第三步:
然后再把edit1.text存到一个自定义类中,(下面是这个自定义类)
type
xxx = record
name: string[255];
end;
第四步:
然后再把整个自定义类发给中文电脑中,下面是发送的代码,
IDUDPServer1.SendBuffer(123.123.123.123, 12345, xxx, SizeOf(xxx));
第五步:
中文电脑接收后,显示的是乱码。(下面是接收并显示的代码)
AData.ReadBuffer(xxx, AData.size);
showmessage(xxx.name); //显示乱码
第二次实验:
第一步:
在日文电脑上,用鼠标和键盘复制文件名 (就是用Ctrl+C) 。
第二步:
把复制的文件名,用鼠标和键盘粘贴到edit1.text中(就是用Ctrl+V) ,
第三步:
然后再把edit1.text存到一个自定义类中,(下面是这个自定义类)
type
xxx = record
name: string[255];
end;
第四步:
然后再把整个自定义类发给中文电脑中,下面是发送的代码,
IDUDPServer1.SendBuffer(123.123.123.123, 12345, xxx, SizeOf(xxx));
第五步:
中文电脑接收后,显示正确。(下面是接收并显示的代码)
AData.ReadBuffer(xxx, AData.size);
showmessage(xxx.name); //显示正常
第三个实验:
在日文电脑中,我用FindFirst和FindNext读出文件名,再用系统API函数模仿剪贴板,把文件名复制粘贴到edit1.text上面,再发送,
中文电脑接收后,还是乱码
第四个实验:
在日文电脑中,我用FindFirst和FindNext读出文件名,存到memo中,把memo的内容存为TXT文本文件,用U盘把TXT文件拷贝到中文电脑上,打开TXT文件显示正常。
--------------------------------
问:为什么用系统剪贴板获取的文件名发送后,显示正常,我在不能换delphi 7简体中文版的情况下,如何破这个难题?
[解决办法]
用FindFirstW和FindNextFileW,传递unicode文件名。
PS:不要跟我求代码
[解决办法]
跟踪一下传送和接收的内容,你就会发现差异了。
[解决办法]