ASCII in UFT8 -> In Visual Studio 2013



  • Moin

    ich hab ein problem...
    ich hab ein
    CString test="test€";
    und will dies in UTF-8 umwandeln...
    Ich hab es bisher in Ascii Hex umgewandelt benötige nun aber UTF-8 Hex

    also
    Ascii Hex "test€" -> "74 65 73 77 80"
    Soll in
    UFT-8 Hex umgewandelt werden.
    Ich hab keine richtige idee wie ich das anstellen soll...
    Im Inet steht viel (google) aber so was wirklich richtiges hab ich net gefunden
    könnte mir da jemand bitte helfen?

    mfg LT



  • WideCharToMultiByte(CP_UTF8, ...), s. z.B. CString to UTF-8



  • //Umwandlung
    char * CStringToUTF8_1(CStringW in){
    	long size = in.GetLength() * 6 + 1;
    	char *out = new char[size];
    	if (!WideCharToMultiByte(CP_UTF8, 0, in, -1, out, size, NULL, NULL))
    	{
    		DWORD err = GetLastError();
    	}
    	return out;
    }
    
    //Aufruf und Ausgabe:
    void CDruckereinstellung::OnBnClickedBApsVt()
    {
    	CString test = "test€";
    	CStringW test1 = test;
    	char * out = CStringToUTF8_1(test1);
    	int buffersize = strlen(out);
    	for (int i = 0; i < buffersize; i++){
    		CString ausg;
    		ausg.Format("%i: %02x", i, out[i]);
    
    		AfxMessageBox(ausg);
    	}
    }
    

    Die Ausgabe ist fast richtig:
    74 65 73 74 FFFFFE2 FFFFF82 FFFFFAC
    Was haben die 5xF dort zu suchen und wie bekomm ich die weg?



  • Lösung : ausg.Format("%i: %02x", i, (unsigned char)out[i]);

    thx für die hilfe



  • Ich könnt mich täuschen, aber wenn ein cast nach char eine "konvertierung" in utf-8 ist, dann fress ich nen Besen ...


  • Mod

    Das leaked...


Anmelden zum Antworten