相关疑难解决方法(0)

std :: wstring VS std :: string

我无法理解之间的差异std::stringstd::wstring.我知道wstring支持Unicode字符等宽字符.我有以下问题:

  1. 我什么时候应该std::wstring用完std::string
  2. 可以std::string保存整个ASCII字符集,包括特殊字符吗?
  3. std::wstring由所有流行的C++编译器的支持?
  4. 什么是" 广角 "?

c++ string unicode c++-faq wstring

716
推荐指数
7
解决办法
29万
查看次数

UTF8到/来自STL中的宽字符转换

是否有可能以独立于平台的方式将std :: string中的UTF8字符串转换为std :: wstring,反之亦然?在Windows应用程序中,我将使用MultiByteToWideChar和WideCharToMultiByte.但是,代码是针对多个操作系统编译的,我仅限于标准C++库.

c++ unicode stl utf-8 character-encoding

69
推荐指数
6
解决办法
7万
查看次数

对C++的std :: wstring,UTF-16,UTF-8以及在Windows GUI中显示字符串感到困惑

我正在为Windows开发一个仅限英语的C++程序,我们被告知"总是使用std :: wstring",但似乎团队中的任何人都没有太多理解.

我已经阅读了标题为"std :: wstring VS std :: string.的问题.这非常有用,但我仍然不太明白如何将所有这些信息应用到我的问题中.

我正在处理的程序在Windows GUI中显示数据.该数据以XML格式保存.我们经常使用XSLT将XML转换为HTML或XSL:FO以用于报告目的.

根据我所读到的内容,我的感觉是HTML应编码为UTF-8.我对GUI开发知之甚少,但我读到的一点点表明GUI内容都是基于UTF-16编码的字符串.

我想知道这会让我离开的地方.假设我们认为所有持久化数据都应该是UTF-8编码的XML.这是否意味着为了在UI组件中显示持久化数据,我应该真正执行某种明确的UTF-8到UTF-16转码过程吗?

我怀疑我的解释可以使用澄清,所以如果你有任何问题,我会尝试提供.

c++ unicode utf-8 utf-16 wstring

17
推荐指数
3
解决办法
2万
查看次数

在c ++ Windows中打开utf8编码的文件名

请考虑以下代码:

#include <iostream>
#include <boost\locale.hpp>
#include <Windows.h>
#include <fstream>

std::string ToUtf8(std::wstring str)
{
    std::string ret;
    int len = WideCharToMultiByte(CP_UTF8, 0, str.c_str(), str.length(), NULL, 0, NULL, NULL);
    if (len > 0)
    {
        ret.resize(len);
        WideCharToMultiByte(CP_UTF8, 0, str.c_str(), str.length(), &ret[0], len, NULL, NULL);
    }
    return ret;
}

int main()
{
    std::wstring wfilename = L"D://Private//Test//???? ??????//??????? ????.txt";
    std::string utf8path = ToUtf8(wfilename );
    std::ifstream iFileStream(utf8path , std::ifstream::in | std::ifstream::binary);
    if(iFileStream.is_open())
    {
        std::cout << "Opened the File\n";
        //Do the work here.
    }
    else
    {
        std::cout << …
Run Code Online (Sandbox Code Playgroud)

c++ windows

11
推荐指数
1
解决办法
6404
查看次数

比较std :: wstring和std :: string

我如何可以比较wstring,比如L"Hello",一个string?如果我需要相同的类型,我怎样才能将它们转换为相同的类型?

c++

3
推荐指数
1
解决办法
5394
查看次数

标签 统计

c++ ×5

unicode ×3

utf-8 ×2

wstring ×2

c++-faq ×1

character-encoding ×1

stl ×1

string ×1

utf-16 ×1

windows ×1