C ++ преобразование UTF-8 в строку - PullRequest
0 голосов
/ 17 июня 2020

У меня есть веб-сервер, разработанный на C ++. На этом веб-сервере данные принимаются со стороны клиента и сохраняются в базе данных. Некоторые из этих данных находятся на персидском языке, который конвертируется в формат Unicode UTF-8. в качестве примера:

data string is "سلام" in client side
when i get data, in webserver
"D8%B3%D9%84%D8%A7%D9%85"

Я хочу преобразовать код UTF-8 в строку c ++, как я могу сделать это преобразование?

1 Ответ

3 голосов
/ 17 июня 2020

Ваша строка не закодирована в UTF-8, но использует настраиваемую кодировку, аналогичную параметрам HTTP url-запроса.

% указывает, что следующие два символа кодируют один байт в шестнадцатеричном формате. Вам нужно будет выполнить синтаксический анализ %, и если вы встретите такой символ, интерпретируйте следующие два символа как байт в шестнадцатеричной кодировке. В противном случае вы просто скопируете символы / байты.

...