'How to convert opcua string to standard string in c++

can someone tell how to convert UaString to std::string in c++.

There is already a question which converts std::string to uastring: How can i convert a std::string to UaString?

Thanks in advance!



Solution 1:[1]

e.g. You have UaString as below:

UaString sString("Test String");

Then you can make standard string as,

std::string myString(sString.toUtf8());

Reference:

UA Server SDK C++

C++ String Class

Solution 2:[2]

One way could be to use the toUtf8 member function which returns a const char* that can be used to construct a std::string.

std::string str(uastring.toUtf8());

An alternative if uastring may contain null terminators:

std::string str(uastring.toUtf8(), uastring.size());

Note that UaString::length() shouldn't be used in this case since it returns the number of UTF8 characters while UaString::size() returns the number of bytes (which may be greater).

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2