001
23.09.2005, 13:09 Uhr
FloSoft
Medialer Over-Flow (Administrator)
|
hmm lol mir gehts immer so das ich erst wenn ich gepostet habe mir die lösung einfällt: Also:
ich darf den string nur von 7bit in 8bit umwandeln wenn er auch 7bit ist wenn jedoch ucs2 (16bit) charset definiert ist dann darf ich ihn natürlich nicht umwandeln sondern muss ihn direkt von Wide nach Ansi umwandeln Jedenfalls geht es nun:
C++: |
CStringW HexStr2WStr(CString strHex) { CStringW strRet; union CHAR { wchar_t wchar; char tchar[2]; }; CHAR temp;
for(int x = 0; x < strHex.GetLength(); x+=4) { temp.tchar[1] = (unsigned char)strtol(strHex.Mid(x,2), NULL, 16); temp.tchar[0] = (unsigned char)strtol(strHex.Mid(x+2,2), NULL, 16); strRet += temp.wchar; } return strRet; }
|
wandelt z.b den String
004D006F006E006F00D500F300F400F600F200F8
wie gesagt in
MonoÕóôöòø
um -- class God : public ChuckNorris { }; |