C ++编码(特殊字符Ø,é...)

时间:2015-07-28 09:58:32

标签: c++

我一起工作 C ++ /窗/ MINGW

我从.xml文件中获取一个具有特殊字符的字符串 文件xml的上升是“Quimby_éé_ØØR90GP_NomPoints.txt” 结果与strangs字符不同

我的file.xml听起来不错:

<?xml version="1.0" encoding="UTF-8"?>

测试:

当我从文件.txt获取一个具有特殊字符的字符串时,它不起作用 当我将字符串写入.txt文件时,它工作正常。

然后ide控制台可能存在一些问题。

我的代码:

void parser_fichier_xml(string fich,string &ActPoints,string &NomPoints)
{

//string ActPoints;
//string NomPoints;

TiXmlDocument doc(fich.c_str());

if(doc.LoadFile(TIXML_ENCODING_UTF8))
{
TiXmlHandle hdl(&doc);                                          
TiXmlElement *elem = hdl.FirstChildElement("GeometryData").FirstChildElement("Element").Element();   //Création de elem (arbre DOM constituant noeud --enfant)


if(!elem)
{
cout<<"le noeud à atteindre n'existe pas"<<endl;
//return 1;
}                                                     //boucle pour vérifier que l'élément ait bien un enfant

 /* ********* Recuperer chemin nompoint actpoint dans balise XML *********** */


 ActPoints = elem->Attribute("ActPoints");
 NomPoints = elem->Attribute("NomPoints");

 /* *****test dans fichier de sorti ***** */

string const nomFichier("Z:/Production/Methodes/InfoTec/Developpement/Zeiss_PCM/toCALYPSO/test.txt");
ofstream fichier(nomFichier.c_str());

    if(fichier)
    {
        fichier << NomPoints<< endl;


            fichier.close();
    }
    else
            cerr << "Impossible d'ouvrir le fichier test.txt !" << endl;

        /* ************************************************** */


    debug_string("Chemin ActPoints:  ",ActPoints,"Chemin   NomPoints:  ",NomPoints); //affiche dans console

 }
else
{
cerr << "Erreur d'ouverture du fichier .XML" << endl;
}


}

作为答案,我不喜欢替换特殊字符的功能,而是更改所有

的功能

如果有人可以帮助我

很多

2 个答案:

答案 0 :(得分:0)

Windows控制台几乎不支持Unicode,绝对不支持UTF-8,而MinGW&#39; myhash = {answer: "yes", something: hello, another: "yes"} myhash.delete[another] 对您没有帮助。遗憾。

答案 1 :(得分:0)

寻求答案,

对于comments.i将在下次最小化我的vode。

我知道UFT-8是什么, ASCII是不够的(没有Ø,é......) UNICODE是理论上的

对于pratical,我有两个选择ISO 8859或UTF-8和 UTF-8更完整(日语等)。

测试:

我尝试了这个特殊的字符“à”,结果是“á”

显示(cout或printf)并不重要,因为我得到的值(结果)就像路径一样。

我将尝试使用ISO 8859,但即使文件文件包含“éé_ØØ”,控制台也不会写相同的“éé_ØØ”

抱歉,我无法发送结果图片(本网站要求10个声誉)