gpt4 book ai didi

java - 将 __int64 转换为 std::u32string

转载 作者:太空狗 更新时间:2023-10-29 23:01:26 25 4
gpt4 key购买 nike

我正在编写一个使用 Casablanca REST API 的 native Windows C++ 应用程序。我正在尝试将整数值从 C++ 应用程序传递到将在云中运行的 Java servlet。在进行 GET REST 调用时,Casablanca API 希望我使用 std::u32string 来存储查询参数。对我来说,为什么要使用 UTF-32 编码来确保可以支持每种类型的字符,这在某种程度上是直观的。对我来说不直观的是如何进行这种转换。

这是我当前的代码:

__int64 queryID = 12345689;               // the integer to pass
std::stringstream stream;
stream << queryID;
std::string queryID_utf8(stream.str()); // the integer as a UTF-8 string
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> convert;
std::u32string queryID_utf32 = convert.from_bytes(queryID_utf8); // UTF-32 string

http_client client(U("http://localhost:8080/MyJavaWebApp"));
uri_builder builder(U("/getContent"));
builder.append_query(U("queryID"), queryID_utf32.c_str());
client.request(methods::GET, builder.to_string()) // etc.

我也不完全确定一旦我收到这个 UTF-32 编码的字符串,我应该如何处理 Java 端的事情。在这里将不胜感激任何专家 C++ 的建议。

最佳答案

当我在 C++ 中使用 Casablanca 时,我使用了 wcharswprintf 等。

pplx::task<MPS_Request::ProcessResult*> MPS_Request::ProcessCreate (ProcessResult * processData)
{
http_request request (methods::GET);
request.set_request_uri (L"?format=xml&action=query&titles=Main%20Page&prop=revisions&rvprop=content");

http_client client (L"http://en.wikipedia.org/w/api.php");

// Make the request and asynchronously process the response
return client.request (request).then ([processData](http_response response)
{
// Grab the status code
processData->statusCodeTSG = response.status_code ();

if (processData->statusCodeTSG == HTTP_RET_OK)
{
// Read the stream into a string
auto bodyStream = response.body ();
container_buffer<string> stringBuffer;

bodyStream.read_to_end (stringBuffer).then ([stringBuffer, processData](size_t bytesRead)
{
// Allocate and copy
const string &line = stringBuffer.collection ();
const char * output = line.c_str ();

processData->resultStreamTSG = new char [strlen (output) + 1];
strcpy_s (processData->resultStreamTSG, (strlen (output) + 1), output);
})
.wait ();
}

return processData;
});
}

关于java - 将 __int64 转换为 std::u32string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31161810/

25 4 0