我一起工作 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;
}
}
作为答案,我不喜欢替换特殊字符的功能,而是更改所有
的功能如果有人可以帮助我
很多
答案 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个声誉)