由于项目需要,最近用 Delphi.10.2精简版404M的开发工具 维护了一个 网关程序,这个网关程序采用的是 HTTP服务器。核心是调用了 diocp这个开源项目,听说是支持高并发。接受到的数据用UTF8Decode处理后还是中文还是乱码。。。。。
http://127.0.0.1:8081/ReadFileMsgEx?data1={"serverpath":"D:\\你.txt"}
以上路径 D:\\你.txt 传入到服务器后,出现了 D:\\乱码.txt
然后改成下面的 ,返回则是正常 D:\\你好txt
http://127.0.0.1:8081/ReadFileMsgEx?data1={"serverpath":"D:\\你好.txt"}
通过观察发现 ,由于diocp开源项目是法国人写的。对于中文的支持不够完美。
那么我前端发过来的是每个汉字都加一个汉字不就好了吗。比如加一个生僻字 雥
http://127.0.0.1:8081/ReadFileMsgEx?data1={"serverpath":"D:\\你雥.txt"}
然后后端再调用 字符串替换函数
retstr:=StringReplace(serverpath, '雥', '', [rfReplaceAll]);
最终 retstr 不乱码了,显示的是 D:\\你.txt