Actualmente estoy escribiendo una aplicación que me exige llamar a GetWindowText en ventanas arbitrarias y almacenar esos datos en un archivo para su posterior procesamiento. Para resumir, he notado que mi herramienta estaba fallando en Battlefield 3, y reducido el problema con el carácter siguiente en su título de la ventana: http://www.fileformat.info/info/unicode/char/2122/index.htmWindows Unicode C++ Stream Output Failure
así que creé una aplicación de prueba pequeña, que sólo hace lo siguiente:
std::wcout << L"\u2122";
Bajo y he aquí que interrumpe la salida a la ventana de la consola durante el resto del programa.
¿Por qué MSVC STL se atraganta con este carácter (y supongo que otros) cuando las API como MessageBoxW etc. lo muestran bien?
¿Cómo puedo obtener esos caracteres impresos en mi archivo?
Probado tanto en VC10 como en VC11 con Windows 7 x64.
Lo siento por la publicación mal construida, me estoy arrancando el pelo aquí.
Gracias.
EDIT:
caso de prueba Mínimo
#include <fstream>
#include <iostream>
int main()
{
{
std::wofstream test_file("test.txt");
test_file << L"\u2122";
}
std::wcout << L"\u2122";
}
Resultado esperado: Carácter '™' impresa a la consola y el archivo. Resultado observado: el archivo se crea pero está vacío. Sin salida a la consola.
me han confirmado que el tipo de letra I "m usando para mi consola es capaz de mostrar el carácter en cuestión, y el archivo es definitivamente vacío (0 bytes de tamaño)
EDIT:.
Más depuración muestra que el 'failbit' y 'badbit' se establecen en la corriente (s)
EDIT:.
también he intentado usar Boost.Locale y estoy teniendo el mismo problema incluso con la nueva configuración regional imbuido de manera global y explícita para todos corrientes de ard.
Bueno, voy a estar maldito, imbuir que la configuración UTF8 realmente funcionó ... Ahora ¿por qué diablos no es Boost.Locale haciendo eso por mí?Interpreté los documentos diciendo que se supone que UTF-8 es la codificación estrecha predeterminada, y he imbuido la configuración regional globalmente y a todas las transmisiones estáticas, así que qué demonios ... – RaptorFactor