Comment lire une codé en UTF-8 fichier contenant des caractères Chinois et de sortie correctement sur la console?

Je suis en train d'écrire un crawler web pour chercher un peu de Chinois des fichiers web. Extraites des fichiers sont encodés en utf-8. Et j'ai besoin de lire ces fichier pour faire certains analyser, telles que l'extraction de l'Url et des Caractères Chinois. Mais j'ai constaté que lorsque j'ai lu le fichier dans un std::string variable et de sortie dans la console, les caractères Chinois sont devenus des caractères illisibles. J'ai appliqué le boost::regex dans le std::string variable et permet d'extraire toutes les Url, mais les caractères Chinois.

Comment puis-je résout ces problèmes?

P. S. Mon RPC, les fichiers sont encodés en ANSI par défaut, le système d'exploitation est Win8 en Langue Chinoise;

Des sons comme vous avez besoin de modifier le code de la page: "UTF-8 au code de la page de votre console utilise des caractères Chinois. Appel MultiByteToWideChar de changement à partir de l'UTF-8 Unicode suivie par WideCharToMultiByte de changer d'Unicode à votre page de codes locale.
Probablement la console est la faute de. Essayez >'ing dans un fichier. Si elle s'avère être en UTF-8 valide avec des caractères Chinois, alors votre programme fonctionne bien et c'est un Windows question. (Bien sûr, vous pouvez toujours besoin de changer votre programme de travail autour des Fenêtres, mais vous saurez à qui la faute.)
Oui, lorsque je redirige le std::string variable dans un autre fichier, le contenu est toujours UTF-8 valide avec Chiese caractères. Ma console est la page de code est "936(ANSI/OEM - 简体中文 GBK)".

OriginalL'auteur Bruce Yang | 2013-11-25