http请求在url中中文乱码

问题:使用http下载文件,通过url中传递文件名,当文件名是中文时,接收方接收到的中文部分是乱码,例如

发送方发送的是“http://192.168.11.131:9988/download/?filename=20250306/2421321/转台数据采集脚本模版1.0.xlsx”,但是

接收端接收到的数据是:“download/?filename=20250306/2421321/%E8%BD%AC%E5%8F%B0%E6%95%B0%E6%8D%AE%E9%87%87%E9%9B%86%E8%84%9A%E6%9C%AC%E6%A8%A1%E7%89%881.0.xlsx”,

导致数据无法正常识别,经过分析,原因如下:

原因:在 HTTP 请求中,URL 中的中文字符通常需要进行编码,否则可能会导致乱码问题。这是因为 URL 标准只支持 ASCII 字符,而中文字符属于非 ASCII 字符,需要通过编码转换为合法的 URL 格式。
解决办法:使用poco库对应的解码工具,解码后正常解析:Poco::URI::decode(query, decodedQuery);

 

posted @ 2025-03-12 18:15  一夜求风  阅读(109)  评论(0)    收藏  举报