c++ - 如何将字符串转换为其 unicode 转义符?

标签 c++

我正在尝试将 char 数组转换为 unicode-escapedchar 数组。

假设我有一个字符串“C:/İmüp”。 如何将其转换为 C:/\u0130m\u00fcp 作为 char 数组或 const char

(我通过 ExpandEnvironmentStrings() 将“C:/Hello İmüp”作为字符数组获取,然后我需要将其写入一个带有 unicode 转义符的文件)

我尝试了类型转换、std::stringstream 和 ASCII 表,查找了有关 C++ json 编码器的示例,但是我无法让它工作

最佳答案

试试这个:

std::wstring env;
// fill env with data from ExpandEnvironmentStringsW()...

std::stringstream ss;
for (std::wstring::iterator iter = env.begin(); iter != env.end(); ++iter)
{
    if (*iter <= 127)
        ss << (char) *iter;
    else
        ss << "\\u" << std::hex << std::setfill('0') << std::setw(4) << (int)*iter;
}

std::string str = ss.str();
// use str as needed...

关于c++ - 如何将字符串转换为其 unicode 转义符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764556/

相关文章:

c++ - C++中的Web服务器,如何发送图像

c++ - 为什么异构查找比较器不是默认的?

C++ 数组下标运算符模板

c++ - Box2D:如何让物体忽略重力

c++ - FLTK 框元素在窗口中不可见

c++ - 在二进制搜索树中删除节点时 Visual Studio 中的访问冲突异常

c++ - 是否有开源线程安全的 C++ 对象池实现?

c++ - 在 OpenGL 上延迟渲染 Qt

c++ - 在什么情况下,两个堆栈分配的结构对象的 this 点指向同一个地址?

c++ - CreateFile 失败并出现错误 ERROR_SHARING_VIOLATION