Avatar ·

std::wstring vs std::string: ¿cuándo usar Unicode y cuándo ASCII en C++?

```html ¡Hola a todos! Soy un desarrollador principiante de C++ y me confunde constantemente la diferencia entre std::wstring y std::string. He leído que std::string es para cadenas "normales" y std::wstring para Unicode. Pero en la práctica tengo muchos problemas. Aquí hay un ejemplo: escribo un programa que lee nombres de archivos de una carpeta. Algunos archivos contienen cirílico, por ejemplo "отчет.docx". Uso std::string: ```cpp std::string filename = "отчет.docx"; std::ifstream file(filename); ``` ¡Y el archivo no se abre! Si uso std::wstring y wifstream, todo funciona: ```cpp std::wstring filename = L"отчет.docx"; std::wifstream file(filename); ``` Pero entonces surgen nuevos problemas: no puedo pasar wstring a funciones que esperan std::string (por ejemplo, en bibliotecas antiguas), y al imprimir en consola con std::cout obtengo caracteres extraños. Tengo que usar std::wcout, pero también se comporta de manera extraña. Otra pregunta: si escribo una aplicación multiplataforma (Windows + Linux), en Linux st ```