首页 > 解决方案 > C++ 将 UTF-8 转换为字符串

问题描述

我有一个用 C++ 开发的 Web 服务器。在此 Web 服务器中,从客户端接收数据并存储在数据库中。其中一些数据是波斯语的,它被转换为 Unicode UTF-8 格式。
例如:

数据字符串在客户端是“سلام”
当我获取数据时,在网络服务器中
"D8%B3%D9%84%D8%A7%D9%85"

我想将 UTF-8 代码转换为 c++ 字符串,我该如何进行这种转换?

标签: c++stringutf-8data-conversion

解决方案


您的字符串不是 UTF-8 编码的,而是使用类似于 HTTP url 查询参数的自定义编码。

%表示接下来的两个字符以十六进制编码单个字节。您将需要解析%,如果遇到这样的字符,请将接下来的两个字符解释为十六进制编码字节。否则,您只需复制字符/字节。


推荐阅读